2016-10-14 9 views
-1

関数に適用する前に解決するべき数式があります。数学計算関数を実行する前に解決したい

私がtrueに解決したい、次の数学の方程式があります。ここでは

console.log((3*(d[0]+d[3]+d[6])+7*(d[1]+d[4]+d[7])+1*(d[2]+d[5]+d[8]))%10 === 0); 

は、式のリテラルです:

console.log((3*(2+0+5)+7*(7+8+2)+1*(1+1+8))%10 === 0); 

リテラル式がtrueに解決されますが、表現リテラルと同じ数字を挿入する変数はfalseになります。

誰でも私にその理由を教えてもらえますか?

+1

* "しかし、変数[...]の式はfalse" * - の結果になります。なぜなら、変数は、あなたが思うのと同じ値を保持しないからです。もしそうであれば、その表現は同じであろう。 – deceze

+0

その場合、 'd'はあなたの考えとは違って見えます。 – Seb

+0

あなたの前提条件を素早く確認する: 'd.forEach((x、i)=> console.log(i、typeof(x)、x))' –

答えて

2

と仮定します。dは文字列であり、いくつかのチェックサムを計算したいとします。この場合、文字列のすべてのデータをNumberに変換し、dNumでテストします。

+0

合理的な前提。きちんとした '地図'。 –

+0

Davidに感謝します。番号をマッピングしたのはそれでした! – cnak2

関連する問題