2015-05-04 41 views
0

語法問題,我在做我的javascript一些加法和減法,但我有奇怪的結果,我不understanf什麼是錯在我的語法:與另外在javascript

var dy, i,diff; 
dy=(lines_extrema[0]-lines_extrema[1]) 
for(i=1;i<=(narrow+1);i++){ 

    // Coordinates 
    if(i==1) diff=(-lines_extrema[1]); 
    else diff=(diff+lines[(0+3*(i-2))]); 
} 

線和lines_extrema通過讀得到方法並且是真實的。 dy很好,我有一個真實的。 diff對i = 0是很好的,它會返回類似於「20.9603-10.9」的東西。 我的語法有什麼問題?

感謝

+0

可能'lines_extrema [0]'或'lines_extrema [1]'是字符串類型。此外,我想這應該是'diff =( - lines_extrema [1])'改爲'diff- = lines_extrema [1]'..分享一些小提琴的鏈接,看更多的確切問題.. –

+0

我不認爲lines_extrema這是問題,因爲dy很好。我嘗試通過diff =(0-lines_extrema [1])替換diff =( - lines_extrema [1]),但它不起作用。 – Laetis

+1

'線陣'是什麼?它的內容類型是什麼? –

回答

0

您在字符串,而不是變量在做操作,所以除了實際上是一個串聯。

要將字符串轉換爲數字,請以「+」爲前綴。示例:

var extrema0 = +lines_extrema[0]; 
var extrema1 = +lines_extrema[1]; 

然後使用extrema0和extrema1添加/減去。

+0

我不認爲lines_extrema是問題,因爲dy很好 – Laetis

+0

這裏有一些最討厭的javascript部分。當您嘗試減去2個字符串時,它們將轉換爲數字。這就是爲什麼dy很好。但由於您之後仍在使用「lines_extrema」和「lines」,因此可以將其轉換回字符串 – Joel

+0

示例:var a =「5」; var b =「4」; var c = a-b; => c是一個數字(1),但是如果你做了「c + b」,你最終會得到字符串「14」。 – Joel