为什么push方法在这种情况下不起作用:[]。push

时间:2015-03-23 12:54:19

标签: javascript arrays

我想在数组声明中直接使用函数push(),但它无法正常工作。在我的示例中,我的数组返回值2



var j = ["b"].push("a");

document.write(j); // return 2




为什么我的数组返回值2而不是["b", "a"]

2 个答案:

答案 0 :(得分:7)

.push返回:

  

调用方法的对象的新长度属性

所以["b"]你有一个数组。 ["b"].push("a"),是的,现在是["b", "a"],但由于您没有分配它,因此您将获得push调用的结果,即新的长度,2。您可以分配它分开:

var j = ["b"];
j.push("a");
console.log(j);

或使用.concat

  

返回一个新数组,该数组由调用它的数组组成,并与作为参数提供的数组和/或值连接。

var j = ["b"].concat("a");
console.log(j);

答案 1 :(得分:1)

push()方法将新项添加到数组的末尾,并返回新的长度。



var j = ["b"].push("a");

console.table(j); // return 2
// this is correct