我有一个对象数组,如下所示:
const myArray = [
{ taxonomy: 'Orange', slug: 'value1'},
{ taxonomy: 'Orange', slug: 'value2'},
{ taxonomy: 'Green', slug: 'value3'},
]
Run Code Online (Sandbox Code Playgroud)
我想在javascript中将对象的slug转换为数组,并将具有相同分类的那些映射到一起:
Result:
[
[value1, value2], // because they share the same taxonomy property.
[value3]
];
Run Code Online (Sandbox Code Playgroud)
如果您有这方面的经验,请帮助我.非常感谢你.
您可以使用reduce方法,Map然后获取数组中的值.
const myArray = [{ taxonomy: 'Orange', slug: 'value1'},{ taxonomy: 'Orange', slug: 'value2'},{ taxonomy: 'Green', slug: 'value3'},]
const res = myArray.reduce((r, {taxonomy, slug}) => {
return r.set(taxonomy, (r.get(taxonomy) || []).concat(slug))
}, new Map).values()
console.log([...res])Run Code Online (Sandbox Code Playgroud)