javascript array.slice()。push()无法按预期工作

时间:2018-04-25 10:53:56

标签: javascript arrays push slice

以下代码生成(在Chrome javascript控制台中)

a:(3)[1,2,3] b:(4)[1,2,3.99] c:4

我希望c看起来像b。为什么不呢?

function snafu(){
    var a = [1,2,3];
    var b = a.slice();
    var c = a.slice().push(99);
    b.push(99);
    console.log("a:",a,"  b:",b,"  c:",c);
}

2 个答案:

答案 0 :(得分:1)

Array.push()为您提供Array.length的值,而不是数组本身



var a = [];
var b = a.push(8); /* returns length of array after pushing value into array */
console.log('a = ', a, ', b = ', b);




答案 1 :(得分:1)

好吧,记住Array.slice()会返回新的数组。因此,当它在slice()上推送时,它会返回数组的长度。

function snafu(){
    var a = [1,2,3];
    var b = a.slice();
    var c = a.slice();
    c.push(99);
    b.push(99);
    console.log("a:",a,"  b:",b,"  c:",c);
}

snafu();

variable c将为您提供新数组,以便您可以使用c执行任何操作。

就是这样。容易!!!!

相关问题