1

我对拼接方法有疑问。在下面的脚本中,如果我将 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;
};
4

1 回答 1

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

它继续......

于 2013-07-16T10:09:33.137 回答