0

我是 JavaScript 新手,所以请原谅我对基础知识和正确词汇的无知。

我有一个包含特定信息/变量/元素(纬度和经度)的对象列表,我想将它们放在单独的数组中。

 var data = [{
     "0": "44",
     "latitude": "44",
     "1": "11",
     "longitude": "11"
 }, {
     "0": "45",
     "latitude": "45",
     "1": "12",
     "longitude": "12"
 }, {
     "0": "46",
     "latitude": "46",
     "1": "13",
     "longitude": "13"
 }, {
     "0": "47",
     "latitude": "47",
     "1": "14",
     "longitude": "14"
 }];

我已经知道我可以轻松访问特定值:

data[1].latitude
data[1].longitude

但是我如何把它们放在一起得到这样的东西呢?:

var latitude = [44, 45, 46, 47]
var longitude = [11, 12, 13, 14]
4

2 回答 2

2

您可以遍历data数组的元素并将所需的值添加到将保存结果的其他数组:

var latitudes = [];
var longitudes = [];
for (var i = 0; i < data.length; i++) {
    latitudes.push(data[i].latitude);
    longitudes.push(data[i].longitude);
}

// at this stage the latitudes and longitudes arrays 
// will contain the desired values

同样在您的data数组中,纬度和经度是字符串,而在您预期的数组中,您需要整数。因此,您可能需要先使用该parseInt函数解析值,然后再将它们添加到结果数组中。

latitudes.push(parseInt(data[i].latitude, 10));
longitudes.push(parseInt(data[i].longitude, 10));

或者parseFloat如果这些字符串可以表示十进制数字(这对于纬度和经度来说更现实),则使用该函数。

于 2013-11-13T08:57:12.737 回答
1

与@Darin Dimitrov 非常相似,但使用 数组的.map()

Array.prototype.map()创建一个新数组,其结果是对该数组中的每个元素调用提供的函数。

更新:应该是这样的

var lat = data.map( function(item) {
   return item.latitude;
});

var lon = data.map( function(item) {
   return item.longitude;
});

JSFiddle

于 2013-11-13T09:08:24.407 回答