首页  >  问答  >  正文

无法在 Node Red JavaScript 中获取数组的长度值

我想知道使用 JavaScript 在 NodeRed 中的函数内读取的数组的长度,但它不显示/返回任何值。有人可以帮我吗?

这是 Node-Red 中功能块内的代码

let j = 0;
let array1 = { payload: msg.payload };

j = array1.length;

return j;

我没有看到 j 的任何返回值。有什么帮助吗?

我预计 j 的值会显示在 NodeRed 调试控制台上。

P粉216807924P粉216807924264 天前436

全部回复(1)我来回复

  • P粉637866931

    P粉6378669312024-01-29 13:41:22

    这是您问题的实际答案。请注意下面给出的这些事项;

    1. let array1 = { payload: msg.payload } 不是数组。它是一个物体。通过obj.length无法找到对象的长度;而是使用 Object.keys(array1).length

    如果您想查找对象的长度(属性数量),请使用以下代码片段。

    let array1 = { payload: msg.payload };
    let length = Object.keys(array1).length;
    console.log(length);
    
    
    // Example
    let person = {name: "Mehdi", city: "Jamshoro", country: "PK"}
    let length = Object.keys(person).length;
    console.log(length);
    
    // Output: 3

    数组的长度可以通过以下方式找到:

    let arr = [1,2,3,4,5,6]
    console.log(arr.length)
    
    // Output: 6

    您似乎在函数外部使用 return 语句。 return 在函数之外不起作用。使用 console.log() 代替。

    回复
    0
  • 取消回复