2016-10-14 32 views
-1

我有一個數學方程式,我將其應用於函數之前解決。在執行函數之前我想解決的數學計算

我有以下的數學公式,我要解決真:

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); 

的文字表達式解析爲真,但表達與插入與文字相同的數字的變量導致錯誤。

有誰能告訴我爲什麼?

+1

*「但是變量的表達式會導致錯誤的」* - 因爲變量不會與您認爲它們的值相同。如果他們這樣做,表達將是相同的。 – deceze

+0

在這種情況下'd'看起來與你想象的不同。 – Seb

+0

運行一個快速現實檢查你的假設:'d.forEach((x,i)=> console.log(i,typeof(x),x))' –

回答

2

我認爲,d是一個字符串,你喜歡計算一些校驗和。在這種情況下,必須將字符串的所有數據轉換爲Number,然後使用dNum進行測試。

dNum = d.split('').map(Number); 
+0

合理的假設。整潔的'地圖'。 –

+0

謝謝大衛。映射數量做到了! – cnak2