节点红色服务器上的Javascript

我编写此代码是为了计算2以上的msg.payload数组中的所有值。

此代码有效,它从第一行返回的值为0,就像第二行未运行一样。

感谢您的帮助。

var count = 0;

for(var i = 0; i < msg.payload.length; ++i){
    if(msg.payload[i] > 2)
        count++;
}

msg.payload = count
return msg;
pencil1989 回答:节点红色服务器上的Javascript

该数组位于msg.values中,对不起

function checkNumeric(e) {
     // Ensure that it is a number and stop the keypress
  if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
    e.preventDefault()
  }
  if ([46,8,9,27,13,110].indexOf(e.keyCode) !== -1 ||
    // Allow: Ctrl+A
    (e.keyCode === 65 && e.ctrlKey === true) ||
    // Allow: Ctrl+C
    (e.keyCode === 67 && e.ctrlKey === true) ||
    // Allow: Ctrl+X
    (e.keyCode === 88 && e.ctrlKey === true) ||
    // Allow: home,end,left,right
    (e.keyCode >= 35 && e.keyCode <= 39)) {
    // let it happen,don't do anything
    return
  }
 
}
,

不适用于节点红色,而只是我的观察-msg.payload看起来像一个引用,您正尝试直接使用此方法更改引用(msg.payload = count)。取而代之的是让该方法返回msg,并使用node-red的最佳做法(例如react中的stateState方法)在父方法中使用返回的值来更改有效负载中的值。

,

运行片段,您会看到

返回功能不正常

就是问题所在。您没有使用功能...所以您无法从中返回

本文链接:https://www.f2er.com/2963194.html

大家都在问