Javascript 空数组.slice(0).push(任何内容)是什么意思?
我想从现有阵列克隆一个新阵列,并推入一个元素。 不幸的是,现有阵列是空的,因此如下所示:Javascript 空数组.slice(0).push(任何内容)是什么意思?,javascript,slice,Javascript,Slice,我想从现有阵列克隆一个新阵列,并推入一个元素。 不幸的是,现有阵列是空的,因此如下所示: [].slice().push(65) 上述表达式的输出为1 为什么是1?因为将单个值推送到一个空数组中,所以结果的长度实际上是1 如果希望将更新后的数组作为输出,则需要保存对它的引用,因为push()不返回引用: var arr = [].slice(); arr.push(65); console.log(arr); // [ 65 ] 将我的评论更改为回答: :push()方法将一个或多个元素添加
[].slice().push(65)
上述表达式的输出为1
为什么是1?因为将单个值推送到一个空数组中,所以结果的长度实际上是1
如果希望将更新后的数组作为输出,则需要保存对它的引用,因为push()
不返回引用:
var arr = [].slice();
arr.push(65);
console.log(arr); // [ 65 ]
将我的评论更改为回答: :push()方法将一个或多个元素添加到数组的末尾,并返回数组的新长度 你需要分两步来做,而不是一步一步
var temp = [].slice();
temp.push(65);
console.log(temp);
如果你想在一行中完成这项工作,请查看
:push()方法将一个或多个元素添加到数组的末尾,并返回数组的新长度。你需要分两步来做,而不是一步一步地做。那么有没有更简单的方法来创建一个新数组并再插入一个元素呢?我必须先创建一个变量来存储[].slice(),然后在新数组上调用push方法?@Aaron Shen:如果你真的想避免这种情况,你可以使用concat:
[].concat(65)
它甚至省去了使用slice()
克隆原始数组的需要。
var a = [1,2,3];
var b = [].concat(a,64);
console.log(b);