來來來先上一個數組:
const pets = [
{ type: 'Dog', name: 'Max'},
{ type: 'Cat', name: 'Karl'},
{ type: 'Dog', name: 'Tommy'},
]
let pet;
複製代碼
仔細一個這個數組的每一項都是對象數組
pet = pets.map((item)=>{
if (item.type ==='Dog' && item.name === 'Tommy') {
return item
}
})
console.log(pet)複製代碼
輸出結果以下圖:bash
pet = pets.forEach((item)=>{
if (item.type ==='Dog' && item.name === 'Tommy') {
return item
}
})
console.log(pet)複製代碼
輸出結果以下圖:ui
pet = pets.filter(item =>{return item.type ==='Dog' && item.name === 'Tommy'});
console.log(pet)複製代碼
輸出結果以下圖:spa
pet = pets.find(item =>{return item.type ==='Dog' && item.name === 'Tommy'});
console.log(pet)複製代碼
輸出結果以下圖:3d
各類方法輸出結果咱們都看到了,來來來咱們總結一波:code
1. map遍歷每一項時並不會知足條件就中止執行,返回一個新的數組,遍歷時知足條件的會被push進去,不知足的則push undefined因此新數組的長度和老數組的長度同樣cdn
2. forEach遍歷返回的是undefined 他就是簡單的遍歷對象
3. filter遍歷會返回一個新的數組,可是是僅僅知足條件的會被push進去blog
4. find遍歷則返回的是知足條件的那一項string
這僅僅是針對返回值的比較,還有其餘方面的不一樣
還有他們都不會改變原數組哦
因此根據你本身的需求,來選擇!!!!