【发布时间】:2011-11-01 01:15:15
【问题描述】:
让我们看一个例子。
var arr1 = new Array({name: "lang", value: "English"},
{name: "age", value: "18"});
var arr2 = new Array({name : "childs", value: '5'},
{name: "lang", value: "German"});
我需要合并这两个对象数组并创建以下数组:
var arr3 = new Array({name: "lang", value: "German"},
{name: "age", value: "18"},
{name : "childs", value: '5'});
是否有任何 JavaScript 或 jQuery 函数可以做到这一点?
$.extend 不适合我。它返回
var arr4 = new Array({name : "childs", value: '5'},
{name: "lang", value: "German"});
【问题讨论】:
-
{name: "lang", value: "English"}发生了什么事? -
对不起。我提到 $.extend,而不是 $.merge。
-
我的意思是,其中的逻辑是什么?你想如何合并数组?从您的示例中不清楚。
-
@ShadowWizard,我认为 OP 的意思是如果存在则更新,如果不存在则推送。
-
注意:这个问题在 2018 年发生了根本性的变化,当时它被编辑为两个“lang”条目都说“德语”。原来,一个说“English”,另一个说“German”。这将问题的含义从“每个'名称'只保留一个元素”更改为“保留元素,除非所有属性都是重复的”。我正在恢复该编辑,因为鉴于该编辑,某些答案将不再有意义。这是一个为什么应该避免对问题进行重大修改的示例。只需进行语法和样式更改,不会改变含义。该意见应该是comment,而不是edit。
标签: javascript jquery arrays