繁体   English   中英

JavaScript 操作顺序

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM