我在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而不是数字......
我该如何解决这个问题?
答案 0 :(得分:3)
valarray[i]==inx[i];
这是一个逻辑比较,而不是作业。
valarray[i]=inx[i];
答案 1 :(得分: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')
答案 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 :(得分:0)
for (i=0; i<inx.length; i++) {
valarray[i]==inx[i];
}
您使用的是比较运算符(==)
,而不是此处的作业(=)
运算符
答案 4 :(得分:0)
仅限javascript错误
你使用过:valarray[i]==inx[i];
你应该使用:
valarray[i]=inx[i];
答案 5 :(得分:0)
valarray[i]==inx[i];
必须成为
valarray[i]=inx[i];