制作一个编辑原始数组而不是返回新数组的方法?

时间:2014-08-15 11:55:44

标签: javascript

Array.prototype.foo = function() {
    this = [ "random", "static", "replacement" ];
}

originalArray = [ "this", "was", "here", "first" ];

originalArray.foo();

console.log( originalArray ); // [ "random", "static", "replacement" ];

我想知道如何做到这一点。

通过对其应用方法来编辑原始数组。到目前为止,我认为我能做的就是:

Array.prototype.foo = function() {
    var arr = [ "random", "static", "replacement" ];

    return arr;
}

originalArray = [ "this", "was", "here", "first" ];

originalArray = originalArray.foo();

3 个答案:

答案 0 :(得分:2)

删除原始数组,然后使用push

Array.prototype.foo = function() {
    this.length = 0;
    this.push( "random", "static", "replacement" );
}

正如volune所说,如果输入是一个数组,你可以使用apply函数。

Array.prototype.foo = function() {
    this.length = 0;
    var newArray = ["random", "static", "replacement"];
    this.push.apply(this, newArray);
}

答案 1 :(得分:0)

Array.prototype.foo = function() {
    this.length = 0; //this clears the array
    this.push("random"); 
    this.push("static"); 
    this.push("replacement");
}

答案 2 :(得分:0)

您可以使用.splice()来修改数组。

Array.prototype.foo = function() {
    this.splice(0,this.length,"random","static","replacement");
}