[英]JavaScript order of operations
我试图从一个对象中检索信息,但我似乎无法以正确的顺序获取它。 这样做, total
总是等于null
。
如何确保在计算平均值之前始终填充total
?
你可以在这里看到 y 仍然未定义
$(function () {
var data =[];
var time =[];
var abc =[
{"val":"2015-07-02 03:55:00","name":"TIME_STAMP"},
{"val":"19981","name":"TOTAL"},
{"val":"2051","name":"\"A\""},
{"val":"274","name":"\"B\""},
{"val":"8826","name":"\"C\""},
{"val":"5351","name":"\"D\""},
{"val":"2628","name":"\"E\""},
{"val":"501","name":"\"F\""},
{"val":"350","name":"\"G\""},
{"val":" ","name":"\"H\" "}];
var total = null;
$.each(abc,function(i,el){
if (el.name == "TIME_STAMP") {
time.push({ name: el.name, y: parseInt(el.val) });
}
else if (el.name == "TOTAL") {
total = parseInt(el.val);
}
else if (total != null) {
var p = parseFloat(el.val) / total * 100;
data.push({name: el.name, y: p});
console.log(el.name + " " + el.y);
}
});
});
改变这一行...
console.log(el.name + " " + el.y);
到这...
console.log(el.name + " " + p);
没有el.y
。
或者,创建el.y
而不是p
...
$.each(abc,function(i,el){
if (el.name == "TIME_STAMP") {
time.push({ name: el.name, y: parseInt(el.val) });
}
else if (el.name == "TOTAL") {
total = parseInt(el.val);
}
else if (total != null) {
el.y = parseFloat(el.val) / total * 100;
data.push({name: el.name, y: el.y});
console.log(el.name + " " + el.y);
}
});
添加此检查修复了它。
$.each(json, function(i,el){
if (el.val != " "){
if(el.name == "TIME_STAMP" || el.name == "TOTAL"){
excess.push({name: el.name, y: parseInt(el.val)});
}else{
endData.push({name: el.name, y: parseInt(el.val)});
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.