Javascript 如何从JSON生成数组?

Javascript 如何从JSON生成数组?,javascript,json,Javascript,Json,想不出更好的标题了。 重要的是要注意:我是js新手,我想这就是我自己无法理解的原因 我有一个从数据库返回的JSON数组,JSON数组表示一组点。 JSON数组的示例: var JSON_array = [{lat:1,lng:2}, {lat:1,lng:3},{lat:2,lng:3}...] 我想制作一个不同的数组,其元素将是函数,函数的变量将是JSON数组中的元素,如下所示: var coordinates = [ new google.maps.LatLng(1, 2), new go

想不出更好的标题了。 重要的是要注意:我是js新手,我想这就是我自己无法理解的原因

我有一个从数据库返回的JSON数组,JSON数组表示一组点。 JSON数组的示例:

var JSON_array = [{lat:1,lng:2}, {lat:1,lng:3},{lat:2,lng:3}...]
我想制作一个不同的数组,其元素将是函数,函数的变量将是JSON数组中的元素,如下所示:

var coordinates = [
new google.maps.LatLng(1, 2),
new google.maps.LatLng(1, 3),
new google.maps.LatLng(2, 3),
....
];

我使用forEach创建了一个函数,用于计算JSON数组的元素(用于学习和尝试找到实现所需的方法),但我想不出创建上述数组的方法。

正如格伦迪评论的那样,您只需执行以下操作:

coordinates = JSON_array.map(function(x) {
                                 return new google.maps.LatLng(x.lat, x.lng);
                             });

不过,您可能希望直接了解术语,这与JSON无关。

您可以使用Array
map
方法:

var coordinates = JSON_array.map(function(coordinate) {
    return new google.maps.LatLng(coordinate.lat, coordinate.lng);
})

此方法基于(1)原始数组和(2)处理每个元素的方式为您提供一个新数组。这里有更详细的方法。

要将元素从一个数组映射到另一个数组,可以使用如下函数

var JSON_array = [{lat:1,lng:2}, {lat:1,lng:3},{lat:2,lng:3}...];
var coordinates = JSON_array.map(function(el){ return new google.maps.LatLng(el.lat, el.lng)});

也可以使用常规for循环

coordinates = [];
for(var i=0;i<JSON_array.length;i++){
    coordinates.push(new google.maps.LatLng(JSON_array[i].lat,JSON_array[i].lng));
}
坐标=[];
对于(var i=0;iyou可以使用function)该示例不是JSON数组。这只是一个数组。当您的JSON解析器解析JSON时,它只是一个数组。直截了当的方法:-)显然是最好的答案
Array.prototype.map()
适用于所有现代浏览器,包括IE9。