【发布时间】:2020-08-31 05:52:04
【问题描述】:
我有一个代码,我试图在数组中的第四项为零之后使用任何值
var wantA = '1120';
wantA = wantA.toString().split('');
wantA = wantA.map(Number);
if (wantA.length >= 4) {
for (i = 3; i <= wantA.length; i++) {
var holdb = wantA[i];
console.log(holdb);
if (holdb != 0) {
console.log(holdb);
alert('error');
}
}
}
然而查看console.log,变量holdb在if语句之后变为“未定义”,即使它是之前的int 0
代码不应发出警报 由于某种原因,它还运行 if 语句 console.log 两次
我是 jsfiddle 的新手,所以我希望这可行:https://jsfiddle.net/2n8rbjk0/
【问题讨论】:
-
问题是因为您正在访问数组边界之外。另请注意,如果您要获取数组中的最后一项,只需使用
pop() -
不会也删除最后一个元素吗?
-
是的。如果您想获取最后一个但保留数组实体,请使用
wantA[wantA.length - 1] -
基本上这是一个逻辑错误,你需要正确使用你的内部for循环
for (i = 3; i < wantA.length; i++)不需要添加=运算符,因为我们只需要数组中的这个特定元素。
标签: javascript jquery arrays for-loop if-statement