为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

白板的微信 2018-11-21 17:42:18
最近在看《javascript权威指南(第6版)》,淘宝团队翻译的。看到数组那一章节,介绍JS数组的一些方法。pop() push() 把数组当作栈,然后在数组的尾部分别是删除添加数组元素。unshift() shift()也是把数组当作栈,但,是在数组的头部分别删除添加元素。四个方法都会更新数组的长度。但是对于提到的返回值,看到给的示例有点疑惑。书上的示例代码:var statck=[]; //stack:[]stack.push(1,2); //stack:[1,2]  返回2stack.pop();   //stack:[1]      返回2stack.push(3);  //stack:[1,3]   返回2stack.pop();    //stack:[1]     返回3stack.push([4,5]); //stack:[1,[4,5]]   返回2stack.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?
查看完整描述

1 回答

?
SMILET

TA贡献1796条经验 获得超4个赞

Array.prototype.pop()
Return value
The removed element from the array; undefined if the array is empty.

Array.prototype.push()
Return value
The new length property of the object upon which the method was called.

Array.prototype.unshift()
Return value
The new length property of the object upon which the method was called.

Array.prototype.shift()
Return value
The removed element from the array; undefined if the array is empty.

即:push() 和 unshift() 会返回新数组的长度,而 pop() 和 shift() 会返回被移除的元素(当数组为空时返回 undefined

来源:MDN


查看完整回答
反对 回复 2018-12-19
  • 1 回答
  • 0 关注
  • 516 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号