例如,
for (i in Cow.array){...}
如果删除Cow
或Cow.array
,会发生什么?
此外,如果发生错误,我该如何解决?
答案 0 :(得分:0)
即使这样也不会在错误中返回(到目前为止您使用JavaScript
- 请注意最后测试会导致错误)这几乎总是以奇怪的方式结束行为:
let myArr = [1,2,3,4]
let myArr2 = [1,2,3,4]
let myArr3 = [1,2,3,4]
for (let i = 0; i < myArr.length; i++) {
console.log("test without reomving: " + myArr[i])
}
for (let i = 0; i < myArr.length; i++) {
console.log("test with removing: " + myArr[i])
myArr.splice(i, 1);
}
for (let i = 0; i < myArr2.length; i++) {
console.log("last test: " + myArr[i])
myArr2 = myArr2.splice(i, 1);
}
for (let i = 0; i < myArr3.length; i++) {
console.log("very last test: " + myArr[i])
myArr3 = null
}
&#13;
我强烈建议不要这样做
答案 1 :(得分:0)
如果您的目标是在循环时修改数组。尽量避免使用它。
如果必须,请使用数组的副本来迭代和修改原始数组。
let myArray = [1, 2, 3, 4, 5]
let copy = myArray
for(let i=0; i<copy.length; i++) {
//do stuff
// for example remove number 3
if(i == 3) {
myArray.splice(i, 1);
}
}