[英]Trying to get the modulo operator to work in javascript
試圖讓模運算符在 javascript 中工作。 這是用於接收數組中的值的 NodeRed 函數。 我可以在沒有模運算符的情況下獲得 avg 值,沒有任何反應。 任何人都可以幫忙嗎? 這樣做的目的是在考慮 0-360 度的情況下獲得正確的平均角度
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;
模塊運算符返回兩個操作數之間的除法余數。 似乎您想要平均角度,這將是您的功能:
((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' 您將返回角度的平均值,因為它們理論上不會大於 360。如果您想要與 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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.