Javascript - 为啥从函数返回 array.push(x) 不会将元素 x 推送到数组中?
Posted
技术标签:
【中文标题】Javascript - 为啥从函数返回 array.push(x) 不会将元素 x 推送到数组中?【英文标题】:Javascript - Why returning array.push(x) from a function doens't push the element x into the array?Javascript - 为什么从函数返回 array.push(x) 不会将元素 x 推送到数组中? 【发布时间】:2015-06-11 11:58:59 【问题描述】:我想知道为什么以下函数有效:
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
不会返回您要推送的数组。
阅读文档:developer.mozilla.org/en-US/docs/Web/javascript/Reference/…
【参考方案1】:
如果你看push方法的定义,它返回的是push后数组的长度,而不是数组本身,这就是它返回1的原因。
push() 方法将一个或多个元素添加到数组的末尾,并且 返回数组的新长度。
您正在将一个包含 3 个元素的数组推送到新数组,因此在新数组中您有一个数组作为其内容,因此返回 1
【讨论】:
哎哟......现在我明白了。谢谢你:)以上是关于Javascript - 为啥从函数返回 array.push(x) 不会将元素 x 推送到数组中?的主要内容,如果未能解决你的问题,请参考以下文章
Javascript:当元素存在于数组中时,为啥 indexOf 函数返回 -1?
javascript的Math.round()函数为啥不能精确小数点位数,