【发布时间】:2020-11-06 14:33:38
【问题描述】:
试图提高我的 JS 能力。
有没有一种更简洁的方法可以通过键从嵌套对象中检索下面的数组中的属性值,删除重复项并按字母顺序对其进行排序?
这是我所拥有的:
getObjectValues(array, key){
var unique = [];
array.forEach(function(item){
item[key].forEach(function(value){
if (unique.indexOf(value) < 0) {
unique.push(value)
}
})
});
return unique.sort();
},
对象数组示例:
[
{ name: 'hello', value: ['a','b','c']},
{ name: 'hello', value: ['a','b','c']},
{ name: 'hello', value: ['a','b','c']}
]
预期的输出应该是一个数组:
var array = ['a','b','c']
【问题讨论】:
-
什么不起作用?
-
可能是唯一性和排序,因为“值”是数组。
-
所以您的输入是
list,而您传递的key是'value'? -
那些
0:、1:、3:不要让它看起来像一个有效的数组。 -
@Bergi 是的,没错,让我更新问题。
标签: javascript sorting filtering