我正在将项目推送到数组但脚本变得无法响应?

igg*_*012 2 javascript

我正在尝试使用for循环将数组的成员添加回自身.

为什么此代码导致无响应的脚本?

var magicarray = {

    arraymemeber: [1, 2, 3, 4, 5],

    duplicate: function () {
        for (var i = 0; i < this.arraymemeber.length; i++) {
            this.arraymemeber.push(this.arraymemeber[i]);
        };
    }
};

console.log(magicarray.duplicate());
Run Code Online (Sandbox Code Playgroud)

Dav*_*ker 5

虽然我不确定你为什么要这样,但为了避免一个无限循环,你现在已经获得了长度并且仅在数组的原始长度上进行迭代.

var magicarray = {

    arraymemeber: [1,2,3,4,5],

    duplicate: function() {

        var length = this.arraymemeber.length;

        for (var i = 0; i < length; i++) {
            this.arraymemeber.push(this.arraymemeber[i]);
        };
    }
};

console.log(magicarray.duplicate());
Run Code Online (Sandbox Code Playgroud)