使用谷歌地图坐标加入两个对象数组

时间:2015-11-30 16:43:18

标签: javascript arrays

我有两个具有相似值的对象数组,但我无法弄清楚如何合并它们。

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]);
}

1 个答案:

答案 0 :(得分:1)

Array.prototype.push.apply(Cars, Trucks) 

编辑:解释

CarsTrucks都是arraypush原型上的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函数,方法是向其传递三个参数:345

编辑2:请注意,执行此操作将覆盖原始数组(作为apply函数调用的第一个参数传递的数组。)