将 JSON 数组解析为 JavaScript 数组

Parse a JSON array into a javascript array

本文关键字:数组 JavaScript JSON      更新时间:2023-09-26
var jsonData = JSON.parse(pump_array);
var name_array = [];
var data_array = [];
for(var i=0;i<jsonData.pumps.length;i++)
{
data_array.push(data_array, pump_array.pumps[i].volume);
name_array.push(name_array, pump_array.pumps[i].iName);}

这是我的JavaScript代码。我正在尝试解析以下 json 数组的特定部分,以便使用图表将其放入图形中.js

var pump_array = {
"pumps":[
    {
  "id": 1,
  "isPrimed":true,
  "iName": "Whiskey",
  "volume": 850,
  "debug": "Test"
    },
    {
  "id": 2,
  "isPrimed":true,
  "iName": "Vodka",
  "volume": 900,
  "debug": "Test"
    }
  ]
}

这里似乎有几点问题。 首先,你在不是字符串的东西上调用JSON.parse。 它是一个成熟的Javascript对象。 无需解析它;只是使用它。

其次,这两行各有一个额外的变量:

data_array.push(data_array, pump_array.pumps[i].volume);
name_array.push(name_array, pump_array.pumps[i].iName);}

大概他们应该读作:

data_array.push(pump_array.pumps[i].volume);
name_array.push(pump_array.pumps[i].iName);}

但即使你纠正了这些问题,你最终仍然会得到一个不太理想的数据结构:

name_array; //=> ["Whiskey", "Vodka"]
data_array; //=> [850, 900]

你最终得到的不是单一的、有用的数据结构,而是两个不同的数据结构,它们只能通过共享索引有用。

像这样的事情怎么样?

pump_array.pumps.reduce(function(soFar, pump) {
    soFar[pump.iName] = pump.volume; 
    return soFar;
}, {});
//=> {Whiskey: 850, Vodka: 900}

在我看来,这是一个更有用的数据结构。