我在本地存储中有一个数组
[["Beverages","55","114.63"],["Catering","2","32"],["Bowl","107","785.43"],["Frozen Yogurt","3","14.97"],["Premium Toppings","328","496.08"],["Salad","62","493.98"],["Soup","25","96.35"],["Wrap","54","389.36"],["Retail","10","18.57"],["Juices","16","95.84"],["Smoothies","12","71.88"]]
这段代码可以访问它并为高级图表创建一个新数组
getDeptDetailPie: function() {
var data = new Array();
var tempData = new Array();
var currentData;
currentData = JSON.parse(storage.readValue('currentDeptDetails'));
for(var i = 0;i<=currentData.length;i++) {
console.log(currentData[i][0]);
if(currentData[i]) {
tempData['name']=currentData[i][0];
tempData['y']=currentData[i][2];
data.push(tempData);
tempData=[];
}
}
我在第9行获取了未被捕获的类型错误,这是console.log函数。但是控制台正在记录正确的数据,但没有一个被放入我的tempData数组中。
非常感谢任何帮助。
答案 0 :(得分:4)
关闭一个错误
i<=currentData.length
需要
i<currentData.length
tempData
应该是一个对象,而不是一个数组。
for(var i = 0;i<currentData.length;i++) {
var tempData = {};
tempData['name']=currentData[i][0];
tempData['y']=currentData[i][2];
data.push(tempData);
}
或只是
for(var i = 0;i<currentData.length;i++) {
data.push({ name : currentData[i][0], y : currentData[i][2]});
}
或者你可以使用forEach或map并摆脱for循环
var data = currentData.map(function(val){ return { name : val[0], y : val[2]}});