Javascript中pop() push() unshift() shift()对数组操作之后返回值是什么?

查看:86
本文介绍了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?

解决方案

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

这篇关于Javascript中pop() push() unshift() shift()对数组操作之后返回值是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆