NodeRed,无法访问嵌套 for 循环中的变量

NodeRed, Not able to access the variables within the nested for loops

我对 nodejs 比较陌生,我在函数节点中的代码如下所示,

var temper=parseInt(msg.payload.temperature);
temp=temper;
var seconDigit=temp%10;
temp=parseInt(temp/10);
var first=temp%10;
temp=temp/10;
var count;

//msg={"payload":{"one":first,"two":seconDigit}};
//return msg;
if(msg.payload.screen=="on"){


var firstCol="*,*,#800000";
count=0;

for(var i=1;i<=2;i++){

    for(var j=1;j<=6;j++){

        if(count<first){

            firstCol=firstCol+","+i.toString()+","+j.toString()+",#C0C0C0";
            count++;
        }

    }
}

count=0;
for(var i=5;i<=6;i++){
    for(var j=1;j<=6;j++){
        if(count<seconDigit){
            firstCol+=","+i.toString()+","+j.toString()+",#C0C0C0";
            count++;
        }

    }
}
//msg={"payload":first};
//return msg;
msg={"payload":firstCol};
return msg;
}
else if(msg.payload.screen=="off"){

var firstCol="*,*,#008000";
count=0;
for(var i=1;i<=2;i++){
    for(var j=1;j<=6;j++){
        if(count<firstDigit){
            firstCol+=","+i.toString()+","+j.toString()+",#C0C0C0";
            count++;
        }

    }
}
count=0;
for(var i=5;i<=6;i++){
    for(var j=1;j<=6;j++){
        if(count<seconDigit){
            firstCol=firstCol+","+i.toString()+","+j.toString()+",#C0C0C0";
            count++;
        }

    }
}
msg={"payload":firstCol};
return msg;
}
else{
    msg={"payload":"*,*,#000000"};
    return msg;
}

我无法访问嵌套 for 循环内的 firstseconDigit 变量,那部分代码没有被执行。我的预期结果应该是一两个字符串。 一个是 *,*,#000000,另一个基于 temp 值的长字符串类似于 *,*,.....。但是当我取消注释上面的几行时,它们似乎工作正常。我做错了什么,我应该更改什么以访问 for 循环内的值?

几天前我也遇到了同样的问题。而不是连接您从中获​​取 msg.payload.temperature 的节点。只需使用 global.set("first",msg.payload.temperature);
在该节点中并使用
访问它 temp=global.get("first");

因此您的代码的顶部将是

temp=global.get("first");
var first=parseInt(temp/10);
var seconDigit=parseInt(temp%10);