JavaScript常用數(shù)組元素搜索或過(guò)濾的四種方法詳解
- 獲取滿(mǎn)足特定條件的數(shù)組中的所有項(xiàng)目
- 要檢查是否滿(mǎn)足條件?
- 檢查數(shù)組中是否有特定值?
- 在數(shù)組中找到指定值的索引?
filter find includes indexOf
Array.filter()
在數(shù)組中查找滿(mǎn)足特定條件的元素
let newArray = array.filter(callback);
- newArray是返回的新數(shù)組
- array 是我們要進(jìn)行查找的數(shù)組本身
- callback 是應(yīng)用于數(shù)組每個(gè)元素的回調(diào)函數(shù)
如果數(shù)組中沒(méi)有項(xiàng)目符合條件,則返回一個(gè)空數(shù)組。
例如,如果我們要獲取大于10的數(shù)字?jǐn)?shù)組中的所有項(xiàng)目,則可以執(zhí)行以下操作: const array = [10, 11, 3, 20, 5]; const greaterThanTen = array.filter(element => element > 10); console.log(greaterThanTen) //[11, 20]
Array.find()
查找滿(mǎn)足特定條件的第一個(gè)元素
let element = array.find(callback);
- element -當(dāng)前被遍歷的元素(必填)
- index -當(dāng)前遍歷的元素的索引/位置(可選)
- array- 當(dāng)前數(shù)組(可選)
但是請(qǐng)注意,如果數(shù)組中沒(méi)有項(xiàng)目符合條件,則返回 undefined。
const array = [10, 11, 3, 20, 5]; const greaterThanTen = array.find(element => element > 10); console.log(greaterThanTen)//11
Array.includes()
確定數(shù)組是否包含某個(gè)值,并在適當(dāng)時(shí)返回 true 或 false
const includesValue = array.includes(valueToFind, fromIndex)
- valueToFind 是要在數(shù)組中檢查的值(必填)
- fromIndex 是要開(kāi)始從中搜索元素的數(shù)組中的索引或位置(可選)
檢查20是否為數(shù)組中的元素之一,則可以執(zhí)行以下操作: const array = [10, 11, 3, 20, 5]; const includesTwenty = array.includes(20); console.log(includesTwenty)//true 如果要檢查數(shù)組是否在第一個(gè)元素之外的其他位置包含10個(gè),可以執(zhí)行如下操作: const array = [10, 11, 3, 20, 5]; const includesTenTwice = array.includes(10, 1); console.log(includesTenTwice)//false
Array.indexOf()
返回可以在數(shù)組中找到給定元素的第一個(gè)索引。如果數(shù)組中不存在該元素,則返回 -1
const indexOfElement = array.indexOf(element, fromIndex)
- element 是要在數(shù)組中檢查的元素(必填),并且
- fromIndex 是要從數(shù)組中搜索元素的啟始索引或位置(可選)
請(qǐng)務(wù)必注意,includes 和 indexOf 方法都使用嚴(yán)格的相等性('===')搜索數(shù)組。如果值的類(lèi)型不同(例如4和'4'),它們將分別返回 false 和 -1
讓我們找到數(shù)組中 3 的索引。 const array = [10, 11, 3, 20, 5]; const indexOfThree = array.indexOf(3); console.log(indexOfThree)//2
結(jié)語(yǔ)
無(wú)需使用 for 循環(huán)即可搜索數(shù)組
- 如果你想找到在符合特定條件的陣列中的所有項(xiàng)目,使用 filter。
- 如果你想檢查是否至少有一個(gè)項(xiàng)目符合特定的條件,請(qǐng)使用 find。
- 如果你想檢查一個(gè)數(shù)組包含一個(gè)特定的值,請(qǐng)使用 includes。
- 如果要在數(shù)組中查找特定項(xiàng)目的索引,請(qǐng)使用indexOf
到此這篇關(guān)于JavaScript常用數(shù)組元素搜索或過(guò)濾的四種方法的文章就介紹到這了,更多相關(guān)js搜索數(shù)組元素內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于javascript 顯式轉(zhuǎn)換與隱式轉(zhuǎn)換(詳解)
下面小編就為大家分享一篇基于javascript 顯式轉(zhuǎn)換與隱式轉(zhuǎn)換(詳解),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12openlayers4實(shí)現(xiàn)點(diǎn)動(dòng)態(tài)擴(kuò)散
這篇文章主要為大家詳細(xì)介紹了openlayers4實(shí)現(xiàn)的點(diǎn)動(dòng)態(tài)擴(kuò)散,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08JS實(shí)現(xiàn)網(wǎng)頁(yè)上隨滾動(dòng)條滾動(dòng)的層效果代碼
這篇文章主要介紹了JS實(shí)現(xiàn)網(wǎng)頁(yè)上隨滾動(dòng)條滾動(dòng)的層效果代碼,涉及JavaScript頁(yè)面元素屬性的獲取、運(yùn)算及設(shè)置等操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-11-11淺談javascript中call()、apply()、bind()的用法
一直對(duì)Javascript中的apply/call/bind的用法很模糊,恰好看到了這篇文章。對(duì)三者之間的區(qū)別與聯(lián)系算是有了比較清晰的認(rèn)識(shí)。這里記錄下來(lái),分享給大家。2015-04-04JavaScript調(diào)試之console.log調(diào)試的一個(gè)小技巧分享
日常開(kāi)發(fā)中經(jīng)常會(huì)需要console來(lái)查看當(dāng)前對(duì)象的值。當(dāng)然用debugger會(huì)更全面的查看,但是總有只喜歡用console的,比如我。下面這篇文章主要給大家分享了關(guān)于JavaScript調(diào)試之console.log調(diào)試的一個(gè)小技巧,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-08-08JS使用canvas繪制旋轉(zhuǎn)風(fēng)車(chē)動(dòng)畫(huà)
這篇文章主要為大家詳細(xì)介紹了JS使用canvas繪制旋轉(zhuǎn)風(fēng)車(chē)動(dòng)畫(huà),有加速減速啟動(dòng)停止功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02ES6中Set和Map數(shù)據(jù)結(jié)構(gòu)的簡(jiǎn)單講解
大家心里是否產(chǎn)生過(guò)這樣的疑問(wèn),JS中既然已經(jīng)有對(duì)象這種數(shù)據(jù)結(jié)構(gòu),我們?yōu)槭裁催€要再單獨(dú)去使用Set或者M(jìn)ap呢?下面這篇文章主要給大家介紹了關(guān)于ES6中Set和Map數(shù)據(jù)結(jié)構(gòu)的相關(guān)資料,需要的朋友可以參考下2022-08-08使用weixin-java-tools完成微信授權(quán)登錄、微信支付的示例
這篇文章主要介紹了使用weixin-java-tools完成微信授權(quán)登錄、微信支付的示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09