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');
.push
返回值被推送到的数组的新长度,而不是它推到的数组的长度。
.push方法返回被推送到的数组的长度。 详情请看这里
.push按照MDN返回
调用该方法的对象的新的length属性。
所以即使你把5,6和7作为数组元素,它也会返回数组的长度
var sliced = ([5,6,7].slice(1)).push(3); console.log(sliced);
输出是3