Javascript拼接方法问题

时间:2013-07-16 10:00:01

标签: javascript splice

我的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;
};

1 个答案:

答案 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

它继续......