Array() 方法彙總

1. length屬性 && 檢測數組

  • length屬性不是隻讀,能夠設置該屬性,從數組的末尾移除項或添加新項
  • 檢測數組:javascript

    1. 一個全局做用域下(一個網頁),使用instanceof
    2. 兩個以上不一樣的全局執行環境(網頁包含多個框架),使用Array.isArray()

2. 轉換方法

  • toString()
  • 返回由數組中每一個值的字符串形式拼接而成的以逗號(,)分隔的字符串,實際上會調用每一項的toString()
  • toLocaleString()
    返回值常常與toString()相同, 但調用的是每一項的toLocaleString()
  • valueOf()
    返回數組自己

3. 棧方法 LIFO(last in first out)

  • push()
    數組末尾添加任意個項,返回數組新的長度,
  • pop()
    刪除數組末的最後一個元素,並返回移除的項

4. 隊列方法 FIFO

  • shift()
    刪除並返回數組第一項
  • unShift()
    在數組的開頭添加任意個項,並返回數組新的長度

5. 重排序方法

  • reverse()
    反轉數組項的順序,該方法會改變原來的數組,而不會建立新的數組。
  • sort()前端

    1. 默認狀況下,sort()方法按升序排列數組,經過調用每一項的toSring()再比較,所以比較的是字符串
    2. 接受一個比較函數做爲參數時,比較函數接受兩個參數,來指定哪一個值位於哪一個值得前面,java

      function sortNumber(a,b) {
            return a - b
       }   //升序

6. 操做方法

  • concat()
    能夠拼接任意數組,返回新數組,不改變自身web

    <script type="text/javascript">
    
    var a = [1,2,3];
    document.write(a.concat(4,5));
    
    </script>
  • slice()
    接受兩個參數,表明截取得起止位置,不包含結束位置,一個參數時默認截取到最後,參數爲負數時,加上數組自己長度,注意 不影響原數組,若是起始位置小於結束位置,則返回空數組
  • splice()小程序

    1. 刪除: 兩個參數 刪除的第一項的位置 和 刪除的項數
    2. 插入: 三個參數 起始位置、 0(刪除的項數)和插入的項,若插入多項,則在後面加上插入的項
    3. 替換: 三個參數 起始位置、 刪除的項數、替換的項(任意數量)

返回從數組中刪除的項,沒有刪除時返回空數組,改變原數組微信小程序

7. 位置方法

  • indexOf()
  • lastIndexOf()
    都接受兩個參數 查找的項和查找起點位置的索引(可選),返回查找項在數組中的位置,沒找到時返回1數組

    let arr = ['orange', '2016', '2016'];
         arr.indexOf('orange'); //0
         arr.indexOf('o'); //-1 由於此方法不會在每個元素的基礎上再次執行 indexOf 匹配。
         arr.indexOf('2016'); //1
         arr.indexOf(2016); //-1 注意:這裏不會作隱式類型轉換。

8. 迭代方法

每一個方法都接受兩個參數,第一個爲在每一項運行的函數,第二個爲運行該函數的做用域對象(可選)
函數接受三個參數:item,index, array自己,都不會改變原數組微信

  • every() 傳入函數的每一項都知足函數,返回true
  • some() 某一項知足函數的條件,返回true
  • forEach() 與for循環用法一致,無返回值
  • filter() 返回一個新的數組,用指定的函數肯定是否在返回的數組中包含某一項
  • map() 返回一個新的數組,該數組的值對應原數組的每一項運行指定函數的返回值

9. 歸併方法

  • reduce()
  • reduceRighht()
    兩個方法都會迭代數組的全部項,構建一個最終的返回值
    接受兩個參數: 每一項調用的函數 和 歸併基礎的初始值
    函數接受四個參數: 前一個值 當前值 索引 和數組對象,該函數的返回值都會做爲第一個參數傳給下一項,第一次迭代發生在數組的第二項上,所以第一個參數是數組的第一項,第二個參數是數組的第二項

10. ES6新增方法

  • find()
    返回經過測試(函數內判斷)的數組的第一個元素的值。
    find() 方法爲數組中的每一個元素都調用一次函數執行:
    若是沒有符合條件的元素返回 undefined
    find() 對於空數組,函數是不會執行的。

不改變原數組框架

  • findIndex()
    和find()差很少,默認返回的是索引。
  • includes()
    與String的includes()同樣,接收2參數,查詢的項以及查詢起始位置,返回true或false
  • keys()
    對數組索引的遍歷
  • values()
    對數組項的遍歷
  • entries()
    對數組鍵值對的遍歷函數

    let arr=['w','b'];
    for(let a of arr.entries()){
        console.log(a)
    }//結果:[0,w],[1,b]
    for(let [i,v] of arr.entries()){
        console.log(i,v)
    }//結果:0 w,1 b
  • fill() 數組填充

    let arr=['w','b'];
     arr.fill('i')//結果:['i','i'],改變原數組

new Array(3).fill('k').fill('r',1,2)//結果:['k','r','k'],第三個數組表示填充的結束位置,前開後閉區間

- Array.from() 
  把帶有lenght屬性相似數組的對象轉換爲數組,也能夠把字符串等能夠遍歷的對象轉換爲數組,它接收2個參數,轉換對象與回調函數
Array.from({'0':'w','1':'b',length:2})//["w", "b"],返回數組的長度取決於對象中的length,故此項必須有!
Array.from({'0':'w','1':'b',length:4})//["w", "b", undefined, undefined]
Array.from({'0':'w','1':'b',length:1})//["w"]
let divs=document.getElementsByTagName('div');
Array.from(divs)//返回div元素數組
Array.from('wbiokr')//["w", "b", "i", "o", "k", "r"]
Array.from([1,2,3],function(x){
        return x+1
    })//[2, 3, 4],第二個參數爲回調函數
```

【完】
做者簡介:鄭佳歡,蘆葦科技web前端實習生,公司部分做品:口紅挑戰網紅小遊戲、服務端渲染官網。擅長網站建設、公衆號開發、微信小程序開發、小遊戲、公衆號開發,專一於前端領域框架、交互設計、圖像繪製、數據分析等研究。 一塊兒並肩做戰: zhengjiahuan@talkmoney.cn 訪問 www.talkmoney.cn 瞭解更多

相關文章
相關標籤/搜索