我有两个具有相似值的对象数组,但我无法弄清楚如何合并它们。
var Cars = [{
lat: 42,
lng: -72
}, {
lat: 40.7127837,
lng: -74.0059413
}, {
lat: 40.735657,
lng: -74.1723667
}];
var Trucks = [{
lat: 43,
lng: -72.5
}, {
lat: 40.612837,
lng: -74.1239413
}, {
lat: 40.564657,
lng: -74.1803667
}];
我已经尝试了下面的代码,但我在控制台中获得的是一堆没有值的对象。
var Vehicles = Cars.concat(Trucks);
for (var i = 0; i < Vehicles.length; i++)
{
console.log(Vehicles[i]);
}
答案 0 :(得分:1)
Array.prototype.push.apply(Cars, Trucks)
编辑:解释
Cars
和Trucks
都是array
。 push
原型上的Array
函数可以根据需要接收任意数量的参数,并将每个参数推送到数组中。例如:
var a = [1,2];
a.push(3,4,5);
console.log(a); // => [1,2,3,4,5]
在任何函数上调用apply
时,指定两项内容:函数中this
变量的值,以及包含要传递的参数列表的数组关于功能。因此,请致电
Array.prototype.push.apply(a, [3,4,5])
将调用push
数组上的a
函数,方法是向其传递三个参数:3
,4
和5
。
编辑2:请注意,执行此操作将覆盖原始数组(作为apply
函数调用的第一个参数传递的数组。)