尝试让模运算符在 JavaScript 中工作。这是用于接收数组中的值的 NodeRed 函数。我可以在没有模运算符的情况下得到平均值,但没有任何反应。有人可以帮忙吗?这样做的要点是考虑 0-360 度来获得正确的平均 Angular
value1 = {};
value2 = {};
value3 = {};
value4 = {};
value5 = {};
avg = {};
msg.number = msg.payload;
value1.payload=msg.number[1];
value2.payload=msg.number[2];
value3.payload=msg.number[3];
value4.payload=msg.number[4];
avg.payload = (((msg.number[1]+msg.number[2]+msg.number[3]+msg.number[4])/4)%360);
return avg;
最佳答案
模运算符返回两个操作数之间除法的余数。看来您想要平均 Angular ,这将是您的函数:
((msg.number[1]+msg.number[2]+msg.number[3]+msg.number[4])/4)
如果您仍然想对此应用 360 模,则应删除周围的 ** ** 并得到以下内容:
avg.payload = ((msg.number[1]+msg.number[2]+msg.number[3]+msg.number[4])/4) % 360;
但是通过添加“% 360”,您将返回 Angular 平均值,因为理论上它们不会大于 360。如果您想要将剩余 Angular 与 360 进行比较,您可以尝试以下操作:
avg.payload = 360 % ((msg.number[1]+msg.number[2]+msg.number[3]+msg.number[4])/4);
看看这是否能得到你想要的结果。
如果您想了解有关该运算符的更多信息,我会查看 Mozilla 的 JavaScript:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Arithmetic_Operators
关于javascript - 尝试让模运算符在 JavaScript 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42026428/