?Array.includes() 代替Array.indexOf()
1. indexOf()? 返回在數(shù)組中可以找到一個(gè)給定元素第一個(gè)索引,沒有找到返回-1 ,如果只是需要找到數(shù)組是否存在某一個(gè)元素,返回一個(gè)布爾值,則我們可以使用includes()
2. Array.includes() 數(shù)組是否包含給定的元素,返回布爾值
```
let arr = ['abc','book','map']
arr.includes('book') // true
arr.indexOf('book') // 1
```
?Array.fined()代替Array.finter()
1. finter() 通過回調(diào)函數(shù)過濾數(shù)組,并將過濾后的項(xiàng)作為新數(shù)組返回,如果只需要查找某一個(gè)唯一id,建議使用fined()<br/>
2. fined() 通過調(diào)用回調(diào)函數(shù)來過濾,只返回復(fù)合條件的第一項(xiàng),當(dāng)找到第一個(gè)符合回調(diào)函數(shù)過濾條件的第一個(gè)數(shù)據(jù)時(shí),就立即停止往下搜尋
```
let arr = [{name:'abc',id:110},{name:'book',id:120},{name:'map',id:130},{name:'book',id:140}]
arr.finter(i =>i.name==='book') //[{name:'book',id:120},{name:'book',id:140}]
arr.fined(i=>i.name === 'book') // [{name:'book',id:120}]
```
Array.some() 取代Array.fined()
1. Array.fined() 返回符合回調(diào)函數(shù)的第一個(gè)元素,如果需要判斷數(shù)組是否存在某一個(gè)元素,用fined() 就不合適,fined() 返回一個(gè)元素,
2. Array.some() 判斷是否存在某元素,返回布爾值
```
let arr = [{name:'abc',id:110},{name:'book',id:120},{name:'map',id:130},{name:'book',id:140}]
arrt.some(i =>i.name ==='book')// true
注:如果有多個(gè)相同名稱元素,也只會返回true
```
注:Array.includes() 和Array.some() 都返回布爾值,一旦找到對應(yīng)值,就立即停止遍歷數(shù)組,不同的是:some()的參數(shù)是回調(diào)函數(shù),includes() 的參數(shù)是一個(gè)值。
includes() 更簡單,some() 更具可操作性
Array.reduce()替代Array.filter()和Array.map()組合
1. filter返回過濾后的一個(gè)新數(shù)組,map也是返回過濾后的新數(shù)組,造成了我們遍歷了兩次數(shù)組,第一次是過濾原數(shù)組以獲取長度稍短的新數(shù)組,第二次是map對filter返回的新數(shù)組進(jìn)行加工,再次創(chuàng)造了一個(gè)新數(shù)組,并最終得到最終的結(jié)果,每一個(gè)方法都有一個(gè)回調(diào)函數(shù),而filter提供給map使用的臨時(shí)數(shù)組是無法復(fù)用的
2. reduce 允許將過濾后加工過的項(xiàng)放進(jìn)累加器,累加器可以是待遞增的數(shù)字,待填充的對象、待拼接的字符串或數(shù)組等
```
let arr = [{name:'abc',id:110},{name:'book',id:120},{name:'map',id:130},{name:'book',id:140}]
arr.reduce((acc,arr)=>{
? ? return arr.name==='book'?acc.concat(Object.assign({},arr,{age:['2018']}):acc):
},[])
//[{name: "book", id: 120, age: ['2018']},{name: "book", id: 140, age: ['2018']}]
arr.filter(i=>i.name==='book').map(i =>Object.assign({},i,{age:['2018']}))
//[{name: "book", id: 120, age: ['2018']},{name: "book", id: 140, age: ['2018']}]
```