admin 管理员组文章数量: 1086019
I'd like to know why the following function works:
function foo(list){
var array = [];
array.push(list);
return array;
}
> foo([1,2,3])
[[1,2,3]]
while this one doesn't:
function foo(list){
var array = [];
return array.push(list);
}
> foo([1,2,3])
1
What's the difference between them?
I'd like to know why the following function works:
function foo(list){
var array = [];
array.push(list);
return array;
}
> foo([1,2,3])
[[1,2,3]]
while this one doesn't:
function foo(list){
var array = [];
return array.push(list);
}
> foo([1,2,3])
1
What's the difference between them?
Share Improve this question edited Feb 22, 2018 at 12:52 Marco Bonelli 69.7k21 gold badges127 silver badges146 bronze badges asked Apr 7, 2015 at 1:30 Bruno HenriqueBruno Henrique 79710 silver badges21 bronze badges 2-
4
Because
push
doesn't return the array you're pushing on to. – Dave Newton Commented Apr 7, 2015 at 1:34 - Read the docs: developer.mozilla/en-US/docs/Web/JavaScript/Reference/… – epascarello Commented Apr 7, 2015 at 2:03
1 Answer
Reset to default 10If you look at the definition of the push method, it returns the length of the array after the push, not the array itself, that is why it is returning 1.
The push() method adds one or more elements to the end of an array and returns the new length of the array.
You are pushing an array with 3 elements to the new array, so in the new array you have an array as its content thus 1 is returned
本文标签:
版权声明:本文标题:Javascript - Why returning array.push(x) from a function doens't push the element x into the array? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1744000192a2516304.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论