最近在看《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?
PHP中文网2017-06-12 09:27:04
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()
會傳回移除的元素(當陣列為空時傳回shift()
會傳回被移除的元素(當陣列為空時傳回
來源:MDN🎜
迷茫2017-06-12 09:27:04
1,pusn 回傳的是陣列的長度。
2,pop,回傳的是刪除的元素。
3,unshift, 回傳的是陣列的長度。
4,shift 回傳的是刪除的元素。