簡體   English   中英

試圖讓模運算符在 javascript 中工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM