我需要这个神奇社区的帮助:)
也许我声明的方式,创建我的数组是错误的,但我正在向数组数组中添加内容,而我无法从中获取任何内容。
这是我的代码(使用我当前的代码编辑)
var arr_size = raw_data.length;
var label_ar = {};
$.each(raw_data, function() {
var key = this.label;
if (typeof label_ar[key] === 'undefined'){
label_ar.key = {};
label_ar.key.label = this.label;
label_ar.key.Analyze = 0;
label_ar.key.Verify = 0;
label_ar.key.Closed = 0;
label_ar.key.Build = 0;
label_ar.key.Integrate = 0;
// console.dir(label_ar.key);
}
c_state = (this.state);
label_ar.key[c_state] = (parseInt(this.value));
});
$.each(label_ar, function(i,v) {
// console.dir(i, e);
console.log("loop");
$.each(label_ar[i], function(i,v) {
console.log(i, v);
});
});
我注意到console.dir显示了内容,但最初它显示了[]
和length label_ar.length等于零(不确定如何)
这是我的控制台的快照 Console
我做错了什么?
看起来label_ar只包含最后一个循环的内容
这是raw_data raw_data
我的输出是许多数组,例如: 标签 - “CC" 分析 - 1 验证 - 2 关闭 - 4 建立 - 0 整合 - 2
答案 0 :(得分:0)
所以,我要提出一些造型建议 - 希望你会发现这很有帮助。假设我不知道原始数据是什么,除了它是一个数组。当然,你不需要提前声明数组,你通常应该更喜欢javascript中的驼峰式
// the map function takes an array, and returns an array
// the first argument, d, is each element of raw data
var labelAr = rawData.map(function(d){
// we can create a multidimensional array by returning an
// Array literal, however you should really use an object
// if you plan to have non numeric keys
return {
Integrate: 0,
Analyze: 0,
Closed: 0,
Verify: 0,
Build: 0,
Label: d.label // this can come from d
Value: d.value // this can come from d
};
});
除此之外,如果没有看到raw_data中的内容,很难帮助你。
答案 1 :(得分:0)
管理“修复”它,感谢我看到的最后一个响应我需要使用对象而不是数组数组,而是使用数组的对象
如果有人有更好,更有效的解决方案,那就欢迎了。
var arr_size = raw_data.length;
var label_ar = {};
$.each(raw_data, function() {
if (typeof label_ar[this.label] == 'undefined'){
label_ar[this.label] = {};
label_ar[this.label].label = this.label;
label_ar[this.label].Analyze = 0;
label_ar[this.label].Verify = 0;
label_ar[this.label].Closed = 0;
label_ar[this.label].Build = 0;
label_ar[this.label].Integrate = 0;
}
label_ar[this.label][this.state] = (parseInt(this.value));
});
console.dir(label_ar);
现在正在使用:)