空array.slice(0).push(任何东西)是什么意思?

Aar*_*hen 4 javascript slice

我想从现有数组克隆一个新数组并推入一个元素.不幸的是,现有的数组是空的,所以它就像:

[].slice().push(65)
Run Code Online (Sandbox Code Playgroud)

上面表达式的输出是1.

为什么是1?

Bol*_*ock 6

Array#push()返回结果数组的长度.由于您将单个值推送到空数组,因此结果的长度确实为1.

如果要将更新的数组视为输出,则需要保存对它的引用,因为push()它不返回引用:

var arr = [].slice();
arr.push(65);
console.log(arr); // [ 65 ]
Run Code Online (Sandbox Code Playgroud)