我有一个数组:
[
{"a": a, "b": b, "c": c},
{"a": a, "b": b, "d": d},
{"a": a, "b": 2, "c": 3}
]
并且我想合并前两个对象,因为它们对a和b具有相同的值,所以我将得到一个结果数组:
[
{"a": a, "b": b, "c": c, "d": d},
{"a": a, "b": 2, "c": 3}
]
有人可以帮我弄清楚如何用纯JavaScript做到这一点吗?
谢谢。
答案 0 :(得分:0)
希望这会有所帮助。
const array = [
{"a": 1, "b": 3, "c": 4},
{"a": 1, "b": 3, "d": 5},
{"a": 2, "b": 2, "c": 3}
];
const combine = (array) => {
const other = [];
let combined = {};
array.forEach((item) => {
if (!combined.a) combined = item;
else if (combined.a === item.a && combined.b === item.b) Object.assign(combined, item);
else other.push(item);
});
return other.concat(combined);
};
console.log(combine(array));