[英]Why does this not work? 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不断返回nan,nan,nan,nan而不是数字...
我怎样才能解决这个问题?
valarray[i]==inx[i];
这是合乎逻辑的比较,而不是分配。
valarray[i]=inx[i];
行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')
您正在比较应该分配的位置,请尝试以下操作:
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);
for (i=0; i<inx.length; i++) {
valarray[i]==inx[i];
}
您正在使用比较运算符(==)
,而不是赋值(=)
运算符
这只是一个JavaScript错误
您使用过:
valarray[i]==inx[i];
您应该使用:
valarray[i]=inx[i];
valarray[i]==inx[i];
必须成为
valarray[i]=inx[i];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.