Javascript中pop() push() unshift() shift()对数组操作之后返回

最近在看《javascript权威指南(第6版)》,淘宝团队翻译的。看到数组那一章节,介绍JS数组的一些方法。
pop() push() 把数组当作栈,然后在数组的尾部分别是删除添加数组元素。
unshift() shift()也是把数组当作栈,但,是在数组的头部分别删除添加元素。
四个方法都会更新数组的长度。
但是对于提到的返回值,看到给的示例有点疑惑。
书上的示例代码:

var statck=[]; //stack:[]

stack.push(1,2); //stack:[1,2]  返回2

stack.pop();   //stack:[1]      返回2

stack.push(3);  //stack:[1,3]   返回2

stack.pop();    //stack:[1]     返回3

stack.push([4,5]); //stack:[1,[4,5]]   返回2

stack.pop();  //stack:[1]       返回[4,5]

stack.pop(); // stack:[]    返回1

返回值应该是当前删除或者插入的值
第二行最后插入的是数值2,所以返回值是2.
那为什么上面第4行代码还有返回值2?不是数值3么?因为插入的是数值3.

stack.push(3); //stack:[1,3] 返回2

然后第6行也不理解后面的返回值:

stack.push([4,5]); //stack:[1,[4,5]] 返回2

为什么返回数值是2不是5?


白板的微信
浏览 517回答 1
1回答

SMILET

Array.prototype.pop()Return valueThe removed element from the array; undefined if the array is empty.Array.prototype.push()Return valueThe new length property of the object upon which the method was called.Array.prototype.unshift()Return valueThe new length property of the object upon which the method was called.Array.prototype.shift()Return valueThe removed element from the array; undefined if the array is empty.即:push() 和 unshift() 会返回新数组的长度,而 pop() 和 shift() 会返回被移除的元素(当数组为空时返回 undefined)来源:MDN
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript