来自以下对象
items = [{
title = 'title 1',
category = 'foo'
},
{
title = 'title 5',
category = 'bar'
},
{
title = 'title n',
category = 'bar'
},
]
哪个
items.length
个值我想获得字段category
的所有不同值的集合。
在上面的例子中,
的结果get_all_possible_categories(items)
将是
['foo','bar'].
如何实施
get_all_possible_categories(items) ?
答案 0 :(得分:2)
您可以使用Set
并映射所需属性的所有值。
最后取一个数组spread syntax ...
来构建一个新数组。扩展sytax采用iterable的值并将它们作为参数插入。
var items = [{ title: 'title 1', category: 'foo' }, { title: 'title 5', category: 'bar' }, { title: 'title n', category: 'bar' }],
values = [...new Set(items.map(o => o.category))];
console.log(values);
答案 1 :(得分:2)
只需将值映射回数组,使用Set获取唯一值
items = [{
title : 'title 1',
category : 'foo'
},
{
title : 'title 5',
category : 'bar'
},
{
title : 'title n',
category : 'bar'
}
];
function get_all_possible_categories(arr) {
return [...new Set(arr.map( x => x.category))];
}
var result = get_all_possible_categories(items);
console.log(result);