JavaScript 对象合并问题

假设有这么一个对象:

https://img1.mukewang.com/5c0736a60001eb9605670415.jpg

我们可以看到,tags 数组是有重复的,试问如何才能合并具有相同 tags 数组的对象,同时将对应的不同 title 和 url 对象合并为数组,即,经过你的 js 处理后,生成类似下面的结构:

https://img3.mukewang.com/5c0736b30001871e03800285.jpg

今天遇到的一个题目,想了很久也没有头绪,求老司机解答

九州编程
浏览 495回答 1
1回答

萧十郎

其实这里最麻烦是对 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;}, []);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript