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数组的特定部分,以便使用chart.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"
}
]
}
答案 0 :(得分:0)
这里好像有些不对劲。首先,您要对不是字符串的内容调用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}
在我看来,这是一个更有用的数据结构。