合并对象数组
Merge Array of Objects
我需要像这样在浏览器端合并对象数组 javascript:
[
{name: "john", age: 10},
{name: "doe", age: 14}
]
--> 新数据到达
[
{name: "pete", age: 88},
{name: "larry", age: 42}
]
应该变成
[
{name: "john", age: 10},
{name: "doe", age: 14},
{name: "pete", age: 88},
{name: "larry", age: 42}
]
好吧,简化后的数组将包含数百个较大的对象。因此我需要一个高效的解决方案。
在此先感谢您的 skeec
var arr3 = [];
for(var i in arr1){
var shared = false;
for (var j in arr2)
if (arr2[j].name == arr1[i].name) {
shared = true;
break;
}
if(!shared) arr3.push(arr1[i])
}
arr3 = arr3.concat(arr2);
你可以使用 loadash:
像这样:
var array = [1];
var other = _.concat(array, 2, [3], [[4]]);
console.log(other);
// → [1, 2, 3, [4]]
console.log(array);
// → [1]
或者对于 Json 你可以像这样使用扩展:
lodash.extend({}, mergeInto, toMerge)
假设您除了连接 2 个数组之外不需要任何其他东西,这非常简单,因为数组已经有了连接方法。
var arr1 = [
{name: "pete", age: 88},
{name: "larry", age: 42}
];
var arr2 = [
{name: "pete", age: 88},
{name: "larry", age: 42}
];
var concatArr = arr1.concat(arr2);
看来你可以只使用.push()
或.concat()
来组合这两个数组。数组中的内容并不重要,因为数组运算符只是抽象地处理数组的元素,而不知道其中的内容。
这是将新数组添加到现有数组的解决方案:
var data = [
{name: "john", age: 10},
{name: "doe", age: 14}
];
var newInfo = [
{name: "pete", age: 88},
{name: "larry", age: 42}
]
data = data.concat(newInfo);
或者,如果你真的想保留原始数组(而不是创建一个新数组),你可以像这样将新数组添加到原始数组的末尾:
data.push.apply(data, newInfo);
我需要像这样在浏览器端合并对象数组 javascript:
[
{name: "john", age: 10},
{name: "doe", age: 14}
]
--> 新数据到达
[
{name: "pete", age: 88},
{name: "larry", age: 42}
]
应该变成
[
{name: "john", age: 10},
{name: "doe", age: 14},
{name: "pete", age: 88},
{name: "larry", age: 42}
]
好吧,简化后的数组将包含数百个较大的对象。因此我需要一个高效的解决方案。
在此先感谢您的 skeec
var arr3 = [];
for(var i in arr1){
var shared = false;
for (var j in arr2)
if (arr2[j].name == arr1[i].name) {
shared = true;
break;
}
if(!shared) arr3.push(arr1[i])
}
arr3 = arr3.concat(arr2);
你可以使用 loadash:
像这样:
var array = [1];
var other = _.concat(array, 2, [3], [[4]]);
console.log(other);
// → [1, 2, 3, [4]]
console.log(array);
// → [1]
或者对于 Json 你可以像这样使用扩展:
lodash.extend({}, mergeInto, toMerge)
假设您除了连接 2 个数组之外不需要任何其他东西,这非常简单,因为数组已经有了连接方法。
var arr1 = [
{name: "pete", age: 88},
{name: "larry", age: 42}
];
var arr2 = [
{name: "pete", age: 88},
{name: "larry", age: 42}
];
var concatArr = arr1.concat(arr2);
看来你可以只使用.push()
或.concat()
来组合这两个数组。数组中的内容并不重要,因为数组运算符只是抽象地处理数组的元素,而不知道其中的内容。
这是将新数组添加到现有数组的解决方案:
var data = [
{name: "john", age: 10},
{name: "doe", age: 14}
];
var newInfo = [
{name: "pete", age: 88},
{name: "larry", age: 42}
]
data = data.concat(newInfo);
或者,如果你真的想保留原始数组(而不是创建一个新数组),你可以像这样将新数组添加到原始数组的末尾:
data.push.apply(data, newInfo);