从 JavaScript 中的 JSON 中提取具有特定名称的元素

Extract elements with specific names from JSON in JavaScript

本文关键字:定名称 元素 提取 JavaScript 中的 JSON      更新时间:2023-09-26

我是 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]

您可以遍历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 函数,如果这些字符串可以表示十进制数(这对于纬度和经度更现实)。

与@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