【发布时间】:2023-04-22 15:44:01
【问题描述】:
我有 2 个包含 20 个对象的数组,我想按名称合并它们。每个数组中名称的顺序不同,顺序很重要,必须保持原样。这使我无法使用传统的排序和for 循环方法。基本上,我所拥有的是:
var tempList1 = [
{'manager':'John', 'x1':0, 'y1':0, 'x2':1, 'y2':1},
{'manager':'Tom', 'x1':0, 'y1':50, 'x2':1, 'y2':1},
{'manager':'Julie', 'x1':0, 'y1':80, 'x2':1, 'y2':1},
...
];
var tempList2 = [
{'manager':'Tom', 'x3':0, 'y3':10, 'x4':1, 'y4':1},
{'manager':'Julie', 'x3':0, 'y3':90, 'x4':1, 'y4':1},
{'manager':'John', 'x3':0, 'y3':50, 'x4':1, 'y4':1},
...
];
请注意,John 位于 tempList1 中的索引 0 处,但位于 tempList2 处的索引 2 处。当我尝试时:
for (var k = 0; k < managerList.length; k++) {
let merged = {...tempList1[k],...tempList2[k]}
combinedList.push(merged);
}
我错误地假设每个数组中的顺序是相同的——实际上不是。
最终结果应该是:
var combinedList = [
{'manager':'John', 'x1':0, 'y1':0, 'x2':1, 'y2':1, 'x3':0, 'y3':50, 'x4':1, 'y4':1},
{'manager':'Tom', 'x1':0, 'y1':50, 'x2':1, 'y2':1, 'x3':0, 'y3':10, 'x4':1, 'y4':1},
{'manager':'Julie', 'x1':0, 'y1':80, 'x2':1, 'y2':1, 'x3':0, 'y3':90, 'x4':1, 'y4':1}
];
问题
如何合并对象,以便只有具有相同 manager 值的对象才能在我的数组中相互合并?
【问题讨论】:
标签: javascript object