用 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
- Javascript陣列中shift()和push(),unshift()和pop()操作方法使用JavaScript陣列
- 使用splice函式實現0拷貝的回顯伺服器函式伺服器
- 自定義 push 和 pop 實現有趣的相簿翻開效果(上)
- 解析vue中push()和splice()的使用Vue
- 伺服器程式設計——函式splice實現零拷貝使用解釋伺服器程式設計函式
- 用listagg函式分組實現列轉行函式
- 二分查詢(函式實現)函式
- 判斷ViewController push、pop操作ViewController
- 用表函式實現OTOP 工具函式
- 輸入10個學生5門課的成績,分別用函式實現下列功能:函式
- 自定義Push/Pop和Present/Dismiss轉場
- iOS自定義轉場動畫(push、pop動畫)iOS動畫
- (函式)實現strstr函式函式
- 用匯編實現add函式函式
- 字串處理,push pop路徑,組合命令字串
- [PY3]——函式——函式註解 | 實現型別檢查功能函式型別
- Golang利用select和普通函式分別實現斐波那契數列Golang函式
- 用Map+函式式介面來實現策略模式函式模式
- memmove和memcpy函式的區別及實現memcpy函式
- PHP實現強型別函式返回值PHP型別函式
- C++模板函式實現型別推導C++函式型別
- VSCode ctrl+shift+O 列出函式列表?VSCode函式
- 用ORACLE分析函式實現行列轉換Oracle函式
- 028 Rust死靈書之Vec的push和popRust
- 自定義函式實現字串分割,返回集合型別函式字串型別
- php利用遞迴函式實現無限級分類PHP遞迴函式
- Sql字串分組Split函式的兩種實現方法SQL字串函式
- C++中push_back()函式的用法C++函式
- 區分slice,splice和split方法
- 用函式正規化實現戰略模式函式模式
- 用雲函式快速實現圖片爬蟲函式爬蟲
- 用虛擬函式實現事件驅動! (轉)函式事件
- 解決 iOS View Controller Push/Pop 時的黑影iOSViewController
- MySQL排名函式實現MySql函式
- MySQL分析函式實現MySql函式