JavaScript陣列方法

Rachid發表於2018-03-16

前言

從事前端到現在也有快兩年了,平時也會收集整理一些筆記放在印象筆記,不過收集過之後就在沒有看過,經大佬指點,真正掌握一個知識點,最好的方式就是用自己的話把內容講明白,就開始將以前零散的東西整合一下,和各位道友一起提高。

運算元組

印象中陣列有很多方法,系統的整理一下

  1. Array.map()

    此方法是將陣列中的每個元素呼叫一個提供的函式,結果作為一個新的陣列返回,並沒有改變原來的陣列
        let arr = [1, 2, 3, 4, 5]
        let newArr = arr.map(x => x*2)
        //arr= [1, 2, 3, 4, 5]   原陣列保持不變
        //newArr = [2, 4, 6, 8, 10] 返回新陣列
    
  2. Array.forEach()

    此方法是將陣列中的每個元素執行傳進提供的函式,沒有返回值,直接改變原陣列,注意和map方法區分
        let arr = [1, 2, 3, 4, 5]
        num.forEach(x => x*2)
        // arr = [2, 4, 6, 8, 10]  陣列改變,注意和map區分
    
  3. Array.filter()

    此方法是將所有元素進行判斷,將滿足條件的元素作為一個新的陣列返回
        let arr = [1, 2, 3, 4, 5]
        const isBigEnough => value => value >= 3
        let newArr = arr.filter(isBigEnough )
        //newNum = [3, 4, 5] 滿足條件的元素返回為一個新的陣列
        
  4. Array.every()

    此方法是將所有元素進行判斷返回一個布林值,如果所有元素都滿足判斷條件,則返回true,否則為false
        let arr = [1, 2, 3, 4, 5]
        const isLessThan4 => value => value < 4
        const isLessThan6 => value => value < 6
        arr.every(isLessThan4 ) //false
        arr.every(isLessThan6 ) //true
    
  5. Array.some()

     此方法是將所有元素進行判斷返回一個布林值,如果存在元素都滿足判斷條件,則返回true,若所有元素都不滿足判斷條件,則返回false
       let arr= [1, 2, 3, 4, 5]
        const isLessThan4 => value => value < 4
        const isLessThan6 => value => value > 6
        arr.some(isLessThan4 ) //true 
        arr.some(isLessThan6 ) //false 
        
  6. Array.reduce()

     此方法是所有元素呼叫返回函式,返回值為最後結果,傳入的值必須是函式型別
       let arr = [1, 2, 3, 4, 5]
       const add = (a, b) => a + b
       let sum = arr.reduce(add)
       //sum = 15  相當於累加的效果
       與之相對應的還有一個 Array.reduceRight() 方法,區別是這個是從右向左操作的
    
  7. Array.push()

     此方法是在陣列的後面新增新加元素,此方法改變了陣列的長度
       let arr = [1, 2, 3, 4, 5]
       arr.push(6, 7)
       console.log(arr) //[1, 2, 3, 4, 5, 6, 7]
       console.log(arr.length) //7
       
  8. Array.pop()

     此方法在陣列後面刪除最後一個元素,並返回陣列,此方法改變了陣列的長度
        let arr = [1, 2, 3, 4, 5]
        arr.pop()
        console.log(arr) //[1, 2, 3, 4]
        console.log(arr.length) //4
        
  9. Array.shift()

     此方法在陣列後面刪除第一個元素,並返回陣列,此方法改變了陣列的長度 
        let arr = [1, 2, 3, 4, 5]
        arr.shift()
        console.log(arr) //[2, 3, 4, 5]
        console.log(arr.length) //4  
    
    
  10. Array.unshift()

     此方法是將一個或多個元素新增到陣列的開頭,並返回新陣列的長度
        let arr = [1, 2, 3, 4, 5]
        arr.unshift(6, 7)
        console.log(arr) //[6, 7, 2, 3, 4, 5]
        console.log(arr.length) //7  
  11. Array.isArray()

     判斷一個物件是不是陣列,返回的是布林值
     
  12. Array.concat()

     此方法是一個可以將多個陣列拼接成一個陣列
       let arr1 = [1, 2, 3] 
           arr2 = [4, 5]
       let arr = arr1.concat(arr2)
     console.log(arr)//[1, 2, 3, 4, 5]
  13. Array.toString()

     此方法將陣列轉化為字串
       let arr = [1, 2, 3, 4, 5];
       let str = arr.toString()
       console.log(str)// 1,2,3,4,5
       
  14. Array.join()

      此方法也是將陣列轉化為字串
       let arr = [1, 2, 3, 4, 5];
       let str1 = arr.toString()
       let str2 = arr.toString(`,`)
       let str3 = arr.toString(`##`)
       console.log(str1)// 12345
       console.log(str2)// 1,2,3,4,5
       console.log(str3)// 1##2##3##4##5
       通過例子可以看出和toString的區別,可以設定元素之間的間隔~
       
      

15.Array.splice(開始位置, 刪除的個數,元素)

   萬能方法,可以實現增刪改
     let arr = [1, 2, 3, 4, 5];
     let arr1 = arr.splice(2, 0 `haha`)
     let arr2 = arr.splice(2, 3)
     let arr1 = arr.splice(2, 1 `haha`)
     console.log(arr1) //[1, 2, `haha`, 3, 4, 5]新增一個元素
     console.log(arr2) //[1, 2] 刪除三個元素
     console.log(arr3) //[1, 2, `haha`, 4, 5] 替換一個元素


結尾

第一次寫,都是很簡單的陣列用法,千里之行始於足下,重新把基礎夯實一下,如果存在錯誤或者表達不當,還望及時告知,thx


參考

MDN語法還有很多好玩的方法可以去demo
《JavaScript高階權威指南 》陣列操作

相關文章