es6新增的遍歷數(shù)組的方法,后面都會用這個方法來遍歷數(shù)組,或者對象,還有set,map
let arr=[1,2,3,4,3,2,1,2];
遍歷數(shù)組最簡潔直接的方法
for (let value of arr) { console.log(value);//輸出1,2,3,4,3,2,1,2}1. 數(shù)組.map()
返回一個新的數(shù)組,es5要復(fù)制一個新的數(shù)組我們一般用循環(huán),現(xiàn)在直接用map
let arr=[1,2,3,4,3,2,1,2];let newArr=arr.map((value,index,arr)=>value)console.log(newArr)//輸出[1,2,3,4],當然里面也可以返回下標的數(shù)組console.log(newArr==arr)//輸出false
2. 數(shù)組.filter()
過濾,返回為真的值,
let arr=[1,2,3,4,3,2,1,2];let newArr1=arr.filter((value,index,arr)=>value>=3)console.log(newArr1);//輸出[3,4,3]
3. 數(shù)組.reduce()
每個參數(shù)的意思previousValue上次回調(diào)的返回值或者初始值,currentValue正在處理的數(shù)組值,currentIndex正在處理函數(shù)的下標
//以前找最大值,最小值我們是用的2層循環(huán)來找的,現(xiàn)在直接一行代碼搞定,是不是很爽let arr=[1,2,3,4,3,2,1,2];let newArr2=arr.reduce((pre,cur,curIndex,arr)=>pre>cur?pre:cur)//pre=1不大于cur=2,返回2;//pre接收返回值2;pre=2不大于cur=3,返回3.....//一直找到4并且返回4;//pre接收4,pre=4大于pre=3然后就一直返回的都是4,這樣就會找到最大值console.log(newArr2)//輸出4,找到最大值,如果想找最小值只需要pre<cur?pre:cur
es6提供的一種新的數(shù)據(jù)結(jié)構(gòu),它類似于數(shù)組,但是成員的值都是唯一的,沒有重復(fù)的值(包括NaN),但是set內(nèi)部對象是不相等的
Set不是數(shù)組,自然就沒有l(wèi)ength屬性,它有size屬性,set.size,就是返回它的成員數(shù)量;
let set=new Set([1,2,3,4,3,2,1]);//這里必須傳入的是數(shù)組console.log(set)//輸出set {1,2,3,4}console.log(set.add(2))//依然輸出set {1,2,3,4}console.log(set.add(5))//輸出 set {1,2,3,4,5}console.log(set.delete(1))//輸出true,表示刪除成功console.log(set.has(2))//輸出true,表示存在這個值console.log(set.clear())//輸出undefined,這個方法知識刪除所有值,并沒有返回值console.log(set)//這時候set已經(jīng)清空了,所以輸出為 set {}Array.from()方法從一個類似數(shù)組或可以迭代的對象中創(chuàng)建一個新的數(shù)組實例
let set=new Set([1,2,3,4,3,2,1]);console.log(Array.from(set))//用這個方法就可以把set對象轉(zhuǎn)換我數(shù)組,輸出為[1,2,3,4,3,2,1]console.log(Array.from('hello'))//輸出為['h','e','l','l','o']利用set 和 from達到數(shù)組去重
let arr1=[1,2,2,1,1,3,5,2]console.log(Array.from(new Set(arr1)))//輸出[1,2,3,5],以后別人問你怎么數(shù)組去重,你可以裝下逼了
寫到這里突然想到es6的...方法
console.log([...new Set(arr1)])
新聞熱點
疑難解答
圖片精選