在 JavaScript 中按 ID 合并对象
在 JavaScript 中,可以有效地合并对象以组合来自多个源的数据。处理对象数组时,一个常见的挑战是通过特定字段(通常称为 id)合并对象。
例如,给定以下数组:
var a1 = [{ id: 1, name: "test"}, { id: 2, name: "test2"}]; var a2 = [{ id: 1, count: "1"}, {id: 2, count: "2"}];
我们想要根据“id”字段将它们组合起来,结果是如下:
var a3 = [{ id: 1, name: "test", count: "1"}, { id: 2, name: "test2", count: "2"}];
解决方案:
ES6中一个简洁有效的解决方案是利用原生的map函数:
const a3 = a1.map(t1 => ({...t1, ...a2.find(t2 => t2.id === t1.id)}));
这里,我们迭代 a1 中的每个对象 t1 并创建一个新对象。使用扩展运算符 (...),我们将属性从 t1 扩展到新对象中。
要附加 a2 中匹配对象的属性,我们使用 find 方法来定位具有匹配 ' 的对象ID'。然后,我们将找到的对象中的属性传播到新对象中。
这种方法优雅地组合了两个数组中的数据,产生所需的结果。它还可以扩展以无缝处理更复杂的场景。
以上是如何通过 ID 合并 JavaScript 对象?的详细内容。更多信息请关注PHP中文网其他相关文章!