日積跬步,以至千里
數組的方法繁多,很多方法在實際的開發中很常用,在日常敲代碼時,也進行了一些總結
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 = [1, 2, 3, 4, 5]? 數組改變,注意和map區分
3.Array.filter()
此方法是將所有元素進行判斷,將滿足條件的元素作為一個新的數組返回
? ?
var a = [1,2,3,4,11]
// 第一個參數為一個方法,有三個參數,current:當前值 index:當前值下標 array:這個數組對象
var b = a.filter(function(current,index,array){
? ? return current < 10
})
console.log(b) // [1,2,3,4]
console.log(a) // [1,2,3,4,11]
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)
? ? console.log(arr) //[1, 2, 3, 4,5,6]
? ? console.log(arr.length) //6
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, 1, 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 arr3 = 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]
16.Array.includes()
includes()方法,返回一個布爾值。 參數是一個value,一般用于簡單數組。
對于復雜數組,則可以使用some()方法替代includes()方法
var a = [1,2,3]
console.log(a.includes(1)) //true