以下代码生成(在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);
}
答案 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
执行任何操作。
就是这样。容易!!!!