【发布时间】:2021-07-12 14:32:43
【问题描述】:
我有一个可以计数到一个数字的有效负载,当该字段中的某些东西击中它时,它会重置为零并再次开始计数。 我正在尝试在重置之前捕获并返回最大数量。 由于外部限制,我并不总是看到 0,所以我不能使用它。
ManTime = msg.payload;
var ManArr = [];
var manMax;
if (ManTime < manMax) {
ManArr.unshift(ManMax)
manMax = 0;
} else {
manMax = ManTime
}
msg = {
ManMax: manMax,
ManTime: ManTime,
ManArr: ManArr
}
我希望这样做是将当前读数与上次读数进行比较,如果较低,则将旧读数添加到数组中。
这是一个节点流,因此每次有效负载更改时都会运行代码,这只是一个数字
示例输入:1、2、3、4、5、1、2、3、4、1、2、3、0、1
预期输出:5、4、3
【问题讨论】:
-
什么是
msg.payload?它是一个数组还是只是一个数字?每次收到消息时都运行此代码吗?如果是这样,每次运行manMax都会被重置为0,所以设置为ManTime是没有用的。请说明您是如何调用此代码的。 -
@HereticMonkey 它在一个节点流中,因此每次有效负载更改时它都会运行,这只是一个数字。
-
请提供样本输入和对应的预期输出。
-
@trincot 完成..
标签: javascript node.js arrays node-red