繁体   English   中英

javascript array.slice()。push()无法正常工作

[英]javascript array.slice().push() not working as expected

产生以下代码(在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);
}

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); 

好吧,请记住Array.slice()将返回新的Array。 因此,当将其推入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将为您提供新的Array,因此您可以使用c进行任何操作。

而已。 简单!!!!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM