[英]Javascript: use array.slice() in a loop and not work as expected
[英]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.