我正在尝试使用相同的键将项目内的嵌套对象组合在一起。组合匹配的对象数组
- 查找“顶层”是重复的值,
- 合并重复的“顶级”项目到一个对象(包括他们的孩子。
- 应该有“类型”列中没有重复的值
我想在这里https://jsfiddle.net/Lpq6huvw/410/
输入数据:
[{
"a": "Mon",
"type": [{
"b": 1
}, {
"b": 3
}]
}, {
"a": "Mon",
"type": [{
"b": 2
}]
}, {
"a": "Tue",
"type": [{
"b": 40
}]
}, {
"a": "Tue",
"type": [{
"b": 50
}]
}, {
"a": "Wed",
"type": [{
"b": 30
}]
}]
这个数组:
[{
"a": "Mon",
"type": [{
"b": 1
}, {
"b": 3
},
{
"b": 2
}]
},
{
"a": "Tue",
"type": [{
"b": 40
},
{
"b": 50
}]
}, {
"a": "Wed",
"type": [{
"b": 30
}]
}]
我尝试这下面,所有的重复项目的映射为一个对象。但是,我希望它将每个映射到它的“顶级”前任。
const z = _.uniqBy(_.filter(data.map(e=>e.a), v => _.filter(data.map(e=>e.a), v1 => v1 === v).length > 1))
const dupes = data.filter(itm => z.includes(itm.a))
const flat = _.flatMap(dupes, item =>
_(item.type)
.map(v => ({b: v.b}))
.value()
)
将属性名称始终是相同的,只值变化? – nnnnnn
是的,他们将保持不变 – Ycon
*“在'类型'数组内不应该有重复的值”* - 你的意思是说,输入将永远不会有'类型'值的重复,或者输入可能有重复,但输出不应该? – nnnnnn