日積跬步三妈,以至千里
數(shù)組的方法繁多丧荐,很多方法在實(shí)際的開(kāi)發(fā)中很常用,在日常敲代碼時(shí)翻伺,也進(jìn)行了一些總結(jié)
1.Array.map()
此方法是將數(shù)組中的每個(gè)元素調(diào)用一個(gè)函數(shù)纱新,結(jié)果作為一個(gè)新的數(shù)組返回,不會(huì)改變之前的數(shù)組
? ? let arr = [1, 2, 3, 4, 5]
? ? let newArr = arr.map(x => x*2)
? ? //arr= [1, 2, 3, 4, 5]? 原數(shù)組保持不變
? ? //newArr = [2, 4, 6, 8, 10] 返回新數(shù)組
2.Array.forEach()
遍歷數(shù)組穆趴,不會(huì)中斷(沒(méi)有返回值,注意和map方法區(qū)分)
? let arr = [1, 2, 3, 4, 5]
? num.forEach(x => x*2)
? // arr = [1, 2, 3, 4, 5]? 數(shù)組改變,注意和map區(qū)分
3.Array.filter()
此方法是將所有元素進(jìn)行判斷遇汞,將滿足條件的元素作為一個(gè)新的數(shù)組返回
? ?
var a = [1,2,3,4,11]
// 第一個(gè)參數(shù)為一個(gè)方法未妹,有三個(gè)參數(shù),current:當(dāng)前值 index:當(dāng)前值下標(biāo) array:這個(gè)數(shù)組對(duì)象
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()
此方法是將所有元素進(jìn)行判斷返回一個(gè)布爾值空入,如果所有元素都滿足判斷條件络它,則返回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()
此方法是將所有元素進(jìn)行判斷返回一個(gè)布爾值歪赢,如果存在元素都滿足判斷條件化戳,則返回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()
此方法是所有元素調(diào)用返回函數(shù)点楼,返回值為最后結(jié)果,傳入的值必須是函數(shù)類(lèi)型:
? let arr = [1, 2, 3, 4, 5]
? const add = (a, b) => a + b
? let sum = arr.reduce(add)
? //sum = 15? 相當(dāng)于累加的效果
與之相對(duì)應(yīng)的還有一個(gè) Array.reduceRight() 方法扫尖,區(qū)別是這個(gè)是從右向左操作的
7.Array.push()
此方法是在數(shù)組的后面添加新加元素,此方法改變了數(shù)組的長(zhǎng)度:
? 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()
此方法在數(shù)組后面刪除最后一個(gè)元素掠廓,并返回?cái)?shù)組换怖,此方法改變了數(shù)組的長(zhǎng)度:
? ? let arr = [1, 2, 3, 4, 5]
? ? arr.pop()
? ? console.log(arr) //[1, 2, 3, 4]
? ? console.log(arr.length) //4
9.Array.shift()
此方法在數(shù)組后面刪除第一個(gè)元素,并返回?cái)?shù)組蟀瞧,此方法改變了數(shù)組的長(zhǎng)度:
? ? let arr = [1, 2, 3, 4, 5]
? ? arr.shift()
? ? console.log(arr) //[2, 3, 4, 5]
? ? console.log(arr.length) //4
10.Array.unshift()
此方法是將一個(gè)或多個(gè)元素添加到數(shù)組的開(kāi)頭沉颂,并返回新數(shù)組的長(zhǎng)度:
? ? 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()
判斷一個(gè)對(duì)象是不是數(shù)組,返回的是布爾值
12.Array.concat()
此方法是一個(gè)可以將多個(gè)數(shù)組拼接成一個(gè)數(shù)組:
let arr1 = [1, 2, 3]
? ? ? arr2 = [4, 5]
? let arr = arr1.concat(arr2)
? console.log(arr)//[1, 2, 3, 4, 5]
13.Array.toString()
此方法將數(shù)組轉(zhuǎn)化為字符串:
? let arr = [1, 2, 3, 4, 5];
? let str = arr.toString()
? console.log(str)// 1,2,3,4,5
14.Array.join()
此方法也是將數(shù)組轉(zhuǎn)化為字符串:
? 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
通過(guò)例子可以看出和toString的區(qū)別悦污,可以設(shè)置元素之間的間隔
15.Array.splice(開(kāi)始位置铸屉, 刪除的個(gè)數(shù),元素)
這是數(shù)組方法里非常強(qiáng)大的一個(gè)方法切端,萬(wàn)能可以同時(shí)實(shí)現(xiàn)增刪改的功能(這種方法可以改變?cè)瓟?shù)組):
? ? ? 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]新增一個(gè)元素
? ? console.log(arr2) //[1, 2] 刪除三個(gè)元素
? ? console.log(arr3) //[1, 2,'haha',4,5]
16.Array.includes()
includes()方法,返回一個(gè)布爾值彻坛。 參數(shù)是一個(gè)value,一般用于簡(jiǎn)單數(shù)組。
對(duì)于復(fù)雜數(shù)組帆赢,則可以使用some()方法替代includes()方法
var a = [1,2,3]
console.log(a.includes(1)) //true