假设有这么一个对象:我们可以看到,tags 数组是有重复的,试问如何才能合并具有相同 tags 数组的对象,同时将对应的不同 title 和 url 对象合并为数组,即,经过你的 js 处理后,生成类似下面的结构:今天遇到的一个题目,想了很久也没有头绪,求老司机解答
1 回答
萧十郎
TA贡献1815条经验 获得超13个赞
其实这里最麻烦是对 Object
判断,题主并没有给出 name
和 slug
是什么样的一个类型值,所以一切都变得非常难办。
但,也不是无从下手,可以借助第三方库,例如:lodash 和 _.isEqual
。
let rv = data.posts.reduce((acc, val) => {
let eItem = acc.find(w => _.isEqual(w.tags, val.tags));
if (!eItem) {
eItem = { title: [], tags: val.tags };
acc.push(eItem);
}
eItem.title.push(val.title);
return acc;
}, []);
添加回答
举报
0/150
提交
取消