我的splice方法有问题。在下面的脚本中,如果我将splice的第二个参数设置为'0',它会崩溃我的浏览器。如果我设置为任何大于'0'的其他值,它就可以正常工作。
为什么会这样?
谢谢,
代码:
function f (x) {
var d = x.toString().split("");
for (i=0; i<d.length; i++){
if (Number(d[i])%2===0){
d.splice(i, 0, "drum");
}
}
return d;
};
答案 0 :(得分:1)
它是一个无限循环,每次drum
插入到数组中,增加其长度。
Splice()
将项目插入数组,以便插入新项目。
第一个循环:
8,8,8
i
为0 // d [0]为8 if (Number(d[i])%2===0)
为true
drum
已插入现在数组为drum,8,8,8
第二个循环:
drum,8,8,8
i
是1 // d [i]是8 if (Number(d[i])%2===0)
为true
drum
已插入现在数组为drum,drum,8,8,8
它继续......