Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 空数组.slice(0).push(任何内容)是什么意思?_Javascript_Slice - Fatal编程技术网

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