Javascript Node.js-推送到内联数组
为什么这两种价值观不同Javascript Node.js-推送到内联数组,javascript,node.js,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).conc
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方法返回它被推送到的数组的长度。有关详细信息,请查看
.根据MDN推送返回
方法所基于的对象的新长度属性
打电话来
所以,即使将5、6和7作为数组元素,它也会返回数组的长度
var sliced = ([5,6,7].slice(1)).push(3);
console.log(sliced);
输出为3
。push
仅返回数组的长度,并且由于数组是基于0的索引,因此最后一个索引的长度始终为-1。