我有一个对象数组:

var objects = [
  {'key1': '1', 'key2': '2'},
  {'key1': '3'},
  {'key1': '4', 'key2': '5', 'key3': '6'},
  {'key1': '1', 'key2': '2'},
  {'key1': '3'},
  {'key1': '4', 'key2': '5', 'key3': '6'},
];


我想要一个具有key2的唯一值但其中没有任何undefined值的数组。像这样:

['2', '5']

现在,我正在使用:

lodash.without(lodash.uniq(lodash.map(objects, 'key2')), undefined)

我的问题:

有没有更好,更紧凑的方法来做到这一点?

最佳答案

objects.reduce(function(m,d){
    if(d.key2 != undefined && m.indexOf(d.key2)<0){
        m.push(d.key2)
    }
    return m;
},[])

关于javascript - 有没有更紧凑的方法来映射指定键的值,从结果数组中删除所有未定义的值并从中获取唯一的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44776955/

10-10 04:11