2011-03-22 135 views
0

我有這個在Javascript:爲什麼這不起作用? JavaScript的

var inx=[2,3,4,5]; 
var valarray=[]; 
for (i=0; i<inx.length; i++) { 
    valarray[i]==inx[i]; 
} 
for (i=0; i<inx.length; i++) { 
    var posi=inx.indexOf(3); 
    var valy=valarray[posi-1]+1; 
    valarray[i]=valy; 
} 
alert(valarray); 

的valarray保持返回南,南,南,男的不是數字...

我怎樣才能解決這個問題?

回答

2

valarray[i]==inx[i];運營商不會對你似乎希望它是什麼。

在JS中,=是賦值運算符,==是具有類型強制的相等運算符,而===是嚴格相等運算符。

舉幾個例子:

var a; 
alert(a = 2);  // 2 

alert('2' == '2'); // true 
alert(2 == 2);  // true 
alert('2' == 2); // true (because of type coercion, 2 == '2') 

alert('2' === '2'); // true 
alert(2 === 2.0); // true 
alert('2' === 2); // false (strict equality: 2 !== '2') 
0

你比較,你應該分配,試試這個:

var inx=[2,3,4,5]; 
var valarray=[]; 
for (i=0; i<inx.length; i++) { 
valarray[i]=inx[i]; //previously there was a == here 
} 
for (i=0; i<inx.length; i++) { 
var posi=inx.indexOf(3); 
var valy=valarray[posi-1]+1; 
valarray[i]=valy; 
} 
alert(valarray); 
3
valarray[i]==inx[i]; 

這是一個合乎邏輯的比較,而不是分配。

valarray[i]=inx[i]; 
0
for (i=0; i<inx.length; i++) { 
    valarray[i]==inx[i]; 
} 

您使用的是比較操作(==),而不是分配(=)這裏

0

它是一個JavaScript錯誤,你只用

valarray[i]==inx[i]; 

你應該使用:

valarray[i]=inx[i]; 
0
valarray[i]==inx[i]; 

必須成爲

valarray[i]=inx[i];