js數(shù)組對象過濾——filter,find,some,every

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"

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容