如何在 JS 中判斷數組是否包含指定的元素(多種方法),進收藏夾吃灰吧!
本文已經原作者 Abhilash Kakumanu 授權翻譯。
簡介
數組是我們編程中經常使用的的數據結構之一。在處理數組時,我們經常需要在數組中查找特定的值,JavaScript 包含一些內置方法來檢查數組是否有特定的值或對象。
今天,我們來一起看看如何檢查數組是否包含特定值或元素。
檢查數組是否包含一個基本類型的值
Arrya.includes() 方法
檢查數組值的最簡單方法是使用include()方法,如下所示:
- let animals = ["🐘", "🐒", "🐶", "🐍"]
- animals.includes("🐶") // true
- animals.includes("🐱") // false
該函數返回一個布爾值,表示該值是否存在。
Arrya.indexOf() 方法
在需要查找的元素的確切位置的情況下,可以使用indexOf(elem)方法,該方法在指定的數組中查找elem并返回其第一次出現的索引,如果數組不包含elem則返回-1。
例如,我們可以在包含 grade 的數組中查找第一次出現的 grade:
- let grades = ["B", "D", "C", "A"]
- grades.indexOf("A") // 3
- grades.indexOf("F") // -1
在第一個實例中,元素出現,并返回其位置,在第二個實例中,返回值表示元素不存在。
我們可以使用它來輕松地改變代碼流
- let grades = ["B", "D", "C", "A"]
- if (grades.indexOf("F") >= 0) {
- console.log("元素存在");
- } else {
- console.log("元素不存在");
- }
檢查對象數組是否包含對象
some() 方法
在搜索對象時,include()檢查提供的對象引用是否與數組中的對象引用匹配。這不是我們想要的,因為對象可以有相同的字段和相應的值,但引用不同。
我們可以使用some()方法根據對象的內容進行搜索。some()方法接受一個參數,接受一個回調函數,對數組中的每個值執行一次,直到找到一個滿足回調函數設置的條件的元素,并返回true。
為了更好地理解它,讓我們看看一些 some()的實際應用
- let animals = [{name: "dog"}, {name: "snake"}, {name: "monkey"}, {name: "donkey"}]
- let element = {name: "monkey"}
- animals.some(animal => animal.name === element.name)
回調函數在前兩種情況下返回 false,但在第三個情況下返回 true,因為名稱匹配。此后,some()暫停執行并返回 true。
總結
在本文中,我們介紹了在JavaScript中檢查數組是否包含指定值的幾種方法。
我們已經介紹了include()函數,它會在值存在時返回一個布爾值。函數的作用是:如果值存在,則返回該值的索引;如果不存在,則返回-1。
最后,對于對象,some()函數可幫助我們根據對象的內容搜索對象的存在。
我是小智,我要去刷碗了,我們下期再見!
作者:Abhilash Kakumanu 譯者:前端小智 來源:medium
原文:https://stackacabuse.com/javascript-check-if-array-contains-a-value-element/
本文轉載自微信公眾號「大遷世界」,可以通過以下二維碼關注。轉載本文請聯系大遷世界公眾號。