Javascript - 为什么从函数返回 array.push(x) 不会将元素 x 推入数组?
Javascript - Why returning array.push(x) from a function doens't push the element x into the array?
我想知道为什么以下功能有效:
function foo(list){
var array = [];
array.push(list);
return array;
}
> foo([1,2,3])
[[1,2,3]]
而这个没有:
function foo(list){
var array = [];
return array.push(list);
}
> foo([1,2,3])
1
它们有什么区别?
如果您查看 push 方法的定义,它 returns 推送后数组的长度,而不是数组本身,这就是它返回 1 的原因。
The push() method adds one or more elements to the end of an array and
returns the new length of the array.
您正在将一个包含 3 个元素的数组推送到新数组,因此在新数组中您有一个数组作为其内容,因此返回 1
我想知道为什么以下功能有效:
function foo(list){
var array = [];
array.push(list);
return array;
}
> foo([1,2,3])
[[1,2,3]]
而这个没有:
function foo(list){
var array = [];
return array.push(list);
}
> foo([1,2,3])
1
它们有什么区别?
如果您查看 push 方法的定义,它 returns 推送后数组的长度,而不是数组本身,这就是它返回 1 的原因。
The push() method adds one or more elements to the end of an array and returns the new length of the array.
您正在将一个包含 3 个元素的数组推送到新数组,因此在新数组中您有一个数组作为其内容,因此返回 1