用 splice函式分別實現 push、pop、shift、unshi
主要需要注意的是不同方法他們本身返回的值應該是什麼,是陣列當前的長度,還是取出的元素的值,再在splice函式里面進行相應的return就可以了。具體如下:
2018.7.23 號關於此部落格對兩個返回元素值的函式進行了更正,返回 length 長度的沒有影響。詳見內容
用 splice函式實現 push方法
function samePush(arr, value){ arr.splice(arr.length, 0, value) return arr.length }var arr = [3, 4, 5]//使用push方法arr.push(10) // arr 變成[3,4,5,10],返回4(length長度)//呼叫函式samePush()samePush(arr,12) // arr變成[3, 4, 5, 10, 12],返回5(length長度)
用 splice函式實現 pop方法
這裡需要進行更正,如果按照之前的
return arr.splice(arr.length-1,1)
這樣寫,返回的是一個含有一個數值的陣列,並不是元素值,所以還需要取出他的0位置元素,將它變成值更正
function samePop(arr) { // 之前錯誤寫法 return arr.splice(arr.length-1, 1) return (arr.splice(arr.length-1, 1))[0] //詳細分析見上更正圖}var arr = [3, 4, 5, 16, 17]//使用pop方法arr.pop() // arr 變成[3, 4, 5, 16],返回17(取出的元素值)//呼叫函式samePop()samePop(arr) // arr 變成[3, 4, 5],返回16(取出的元素值)
用 splice函式實現 shift方法
同上、這裡同樣需要更正,原因同上
更正
function sameShift(arr) { // 之前錯誤寫法 return arr.splice(0,1) return (arr.splice(0,1))[0] //詳細分析見上更正圖}var arr = [3, 4, 5, 16, 17]//使用shift方法arr.shift() // arr 變成[4, 5, 16, 17],返回3(取出的元素值)//呼叫函式sameShift()sameShift(arr) // arr 變成[5, 16, 17],返回4(取出的元素值)
用 splice函式實現 unshift方法
function sameUnshift(arr,value) { arr.splice(0,0,value) return arr.length }var arr = [3, 4, 5, 16, 17]//使用unshift方法arr.unshift(22) //arr 變成[22, 3, 4, 5, 16, 17],返回6(length長度)//呼叫函式sameUnshift()sameUnshift(arr,11) // arr 變成[11, 22, 3, 4, 5, 16, 17],返回7(length長度)
參考連結
參考
參考
作者:evenyao
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/3209/viewspace-2812844/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- js陣列的常見操作( push、pop、unshift、shift、splice、concat、 join)的用法JS陣列
- javascript中shift()、unshift()、push()、pop() 陣列操作JavaScript陣列
- js中push(),pop(),unshift(),shift()的用法小結JS
- 使用splice函式實現0拷貝的回顯伺服器函式伺服器
- 用listagg函式分組實現列轉行函式
- 判斷ViewController push、pop操作ViewController
- 選中取消push和splice刪除
- 解析vue中push()和splice()的使用Vue
- 二分查詢(函式實現)函式
- 用匯編實現add函式函式
- 輸入10個學生5門課的成績,分別用函式實現下列功能:函式
- 自定義Push/Pop和Present/Dismiss轉場
- VSCode ctrl+shift+O 列出函式列表?VSCode函式
- Golang利用select和普通函式分別實現斐波那契數列Golang函式
- 讓 UIView 像 UINavigationController 一樣支援 push 和 popUIViewNavigationController
- 字串處理,push pop路徑,組合命令字串
- C++模板函式實現型別推導C++函式型別
- 用Map+函式式介面來實現策略模式函式模式
- 028 Rust死靈書之Vec的push和popRust
- C++中push_back()函式的用法C++函式
- 用雲函式快速實現圖片爬蟲函式爬蟲
- 用函式正規化實現戰略模式函式模式
- MySQL分析函式實現MySql函式
- MySQL排名函式實現MySql函式
- fcntl函式實現dup函式
- 用函式實現模組化程式設計二函式程式設計
- 用函式實現模組化程式設計三函式程式設計
- 用函式實現模組化程式設計一函式程式設計
- 請別誤用 TypeScript 過載函式型別TypeScript函式型別
- [iOS]UINavigationController 全屏 pop 之為控制器新增左滑 pushiOSUINavigationController
- 區分slice,splice和split方法
- JavaScript的迭代函式與迭代函式的實現JavaScript函式
- 實用函式式 Java (PFJ)簡介函式Java
- 使用條件型別實現TypeScript中的函式過載型別TypeScript函式
- scala:分別使用懶漢式和餓漢式實現單例模式單例模式
- 去抖函式的實現函式
- bind 函式的實現原理函式
- 巧妙地實現 debugOnly 函式Go函式