Javascript中pop() push() unshift() shift()对数组操作之后返回值是什么?
女神的闺蜜爱上我
女神的闺蜜爱上我 2017-06-12 09:25:04
0
2
1621

最近在看《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?

女神的闺蜜爱上我
女神的闺蜜爱上我

全部回复(2)
洪涛

Array.prototype.pop()
返回值
数组中移除的元素;如果数组为空则未定义。

Array.prototype.push()
返回值
调用该方法的对象的新长度属性。

Array.prototype.unshift()
返回值
调用该方法的对象的新长度属性。

Array.prototype.shift()
返回值
数组中移除的元素;如果数组为空则未定义。

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

来源:MDN

迷茫

1,pusn 返回的是数组的长度。
2,pop,返回的是删除的元素。
3,unshift, 返回的是数组的长度。
4,shift 返回的是删除的元素。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板