每日分享!~ JavaScript(js數組如何在指定的位置插入一個元素)

 

這個想法是在一個面試題中看到的:面試

題目是這樣的: 數組

  // 一個數組,在指定的index 位置插入一個元素,返回一個新的數組,不改變原來的數組 
<script>
        function insert(arr, item, index) { var newArr = arr.concat() for (var i = 0; i < newArr.length; i++) { if (index > 0) { if (i === index) { newArr.splice(i,0,item) } } } return newArr } document.write(insert([1,2,3,4,5,5],2,2)) </script>

 

 

當你遇到這問題:如何處理呢?spa

在解決這個問題以前,我還不知道數組中的splice方法能夠插入一個元素,一直認爲splice方法只能夠刪除一個數組的元素!!!  既然這樣,那麼廢話很少說,介紹介紹splice的用法吧。code

 

-----------------------------------------------------分割線------------------------------------------------------------------------------對象

splice的用法:blog

splice() 方法經過刪除或替換現有的元素或者原地添加新的元素來修改數組並以數組的形式返回被修改的內容。此方法會改變願數組,。索引

具體三個參數以下:ip

start​
指定修改的開始位置(從0計數)。若是超出了數組的長度,則從數組末尾開始添加內容;若是是負值,則表示從數組末位開始的第幾位(從-1計數,這意味着-n是倒數第n個元素而且等價於 array.length-n);若是負數的絕對值大於數組的長度,則表示開始位置爲第0位。
deleteCount  可選
整數,表示要移除的數組元素的個數。
若是  deleteCount 大於  start 以後的元素的總數,則從  start 後面的元素都將被刪除(含第  start 位)。
若是  deleteCount 被省略了,或者它的值大於等於 array.length - start(也就是說,若是它大於或者等於 start以後的全部元素的數量),那麼 start以後數組的全部元素都會被刪除。
若是  deleteCount 是 0 或者負數,則不移除元素。這種狀況下,至少應添加一個新元素。
item1, item2, ...  可選
要添加進數組的元素,從 start 位置開始。若是不指定,則  splice() 將只刪除數組元素。
示例:splice() 方式刪除數組
1 var arr = [1,2,2,3,4,5] 2 arr.splice(1,1) // 第一個參數表示index (索引) 第二個參數表示從這個索引開始,從左往右要刪除的長度 。
3 // 返回的結果是 [2] 改變原來的數組 
4 // 最終arr = [1,2,3,4,5]   

    示例:splice() 方式添加數組 it

var arr = [1,2,2,3,4,5] arr.splice(2,0,4)  // 第一個參數表示index(索引) 第二個參數要移除的個數, 第三個參數表示要添加的元素 // 返回的結果爲空, 改變原來的數組 // 最終 arr = [1,2,4,2,3,4,5]

 

 

總結感悟:  原生js中的內置對象很是有用,咱們必須努力掌握好!~ 否則像我同樣這個簡單的題目的忘記來!記住splice()方法後,即可以輕易的解決掉這個問題啦~~~io

相關文章
相關標籤/搜索