1、filter() 方法創(chuàng)建一個新的數(shù)組,新數(shù)組中的元素是通過檢查指定數(shù)組中符合條件的所有元素。
原數(shù)組不變
不會對空數(shù)組進行檢測
let arr1 = [1,2,3,4]
let arr2 = arr1.filter(item=>item===1)
console.log(arr1, 'arr1')// [1,2,3,4] arr1console.log(arr2, 'arr2')// [1] arr2? ? ?
let arr3 = [{
? ? id:1,
? ? name:'aa',
? ? desc: 'aaaa' },{
? ? id:2,
? ? name:'bb'? },{
? ? id:3,
? ? name: 'aa' }]
let arr4 = arr3.filter(item=>item.name === 'aa')
console.log(arr4, 'arr4')// [{id:1,name:'aa', desc:'aaaa'},{id:3,name:'aa'}] arr4
2、find() 對于空數(shù)組,函數(shù)是不會執(zhí)行的。
不會改變原數(shù)組
返回符合測試條件的第一個數(shù)組元素值
let arr5 = [1,2,1,3,4,5]
let arr6 = arr5.find(item=>item===1)
console.log(arr6, 'arr6')// 1 arr6let arr7 = arr3.find(item=>item.name === 'aa')
console.log(arr7, 'arr7')// {id:1,name:'aa',desc:'aaaa'} arr7
3、some 用于檢測數(shù)組中的元素是否滿足指定條件
會依次執(zhí)行數(shù)組的每個元素-如果有一個元素滿足條件(即只要有條件滿足即可相當于或),則表達式返回true , 剩余的元素不會再執(zhí)行檢測
----------------------如果沒有滿足條件的元素,則返回false
let someArr1 = [1,2,3,4]
? ? ? let someArr2 = someArr1.some(item=>item === 1)
? ? ? console.log(someArr2, 'someArr1')// true? someArr1? ? ?
? ? ? let someArr4 = [{
? ? ? ? ? id:1,
? ? ? ? ? name:'bb'? ? ? },{
? ? ? ? ? id:4,
? ? ? ? ? name:'cc'? ? ? },{
? ? ? ? ? id:1,
? ? ? ? ? name:'dd'? ? ? }]
? ? ? let someArr3 = someArr4.find(info=>{
? ? ? ? ? returnarr3.some(item=>item.id === info.id)
? ? ? })
? ? ? console.log(someArr3) // {id:1,name:'bb'}
4、every() 方法用于檢測數(shù)組所有元素是否都符合指定條件(通過函數(shù)提供)
every() 方法使用指定函數(shù)檢測數(shù)組中的所有元素-如果數(shù)組中檢測到有一個元素不滿足,則整個表達式返回 false ,且剩余的元素不會再進行檢測
------------------------------------------如果所有元素都滿足條件,則返回 true
let everyArr = [1,2,3,4]
let everyArr2 = everyArr.every(item=>item===1)
console.log(everyArr2, 'everyArr2')//false "everyArr2"