Node.js - 内联推送数组

时间:2015-12-01 05:36:57

标签: javascript node.js

为什么这两个值不同?

var sliced = [1,2].slice(1);
sliced.push(3);
console.log(sliced);


var sliced = [1,2].slice(1).push(3);
console.log(sliced);

也许这可以说明为什么这不起作用:

var result = process.argv.slice(1).push('xyz');

但这样做:

var result = process.argv.slice(1).concat('xyz');

2 个答案:

答案 0 :(得分:2)

.push返回推送值的数组的新长度,而不是它推送到的数组。

答案 1 :(得分:2)

.push方法返回它被推送到的数组的长度。有关详细信息,请查看here

.push根据MDN返回

  

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

所以即使你把5,6和7作为数组元素,它也会返回数组的长度

var sliced = ([5,6,7].slice(1)).push(3);
console.log(sliced);

输出为3