JavaScript:檢查數組是否包含值/元素
簡介
數組是計算機科學中使用最廣泛的數據結構之一。在處理項目列表(數組)時,我們經常需要在列表中查找特定值。 JavaScript 包含一些內置方法來檢查數組是否具有特定值或對象。
在本文中,我們將了解 如何在 JavaScript 中檢查數組是否包含/包含值或元素 .
檢查原始值數組是否包含一個值
Array.includes() 功能
檢查數組中原始值的最簡單方法是使用 includes()
方法:
let isInArray = arr.includes(valueToFind[, fromIndex])
// arr - array we're inspecting
// valueToFind - value we're looking for
// fromIndex - index from which the seach will start (defaults to 0 if left out)
// isInArray - boolean value which tells us if arr contains valueToFind
例如,讓我們檢查動物數組是否包含狗和貓表情符號:
let animals = ["🐘", "🐒", "🐶", "🐍"]
animals.includes("🐶") // true
animals.includes("🐱") // false
該函數返回一個布爾值,表示該值是否存在。
Array.indexOf() 功能
如果我們需要我們正在尋找的元素的確切位置,我們可以使用 indexOf(elem)
方法,它查找 elem
在指定的數組中並返回其第一次出現的索引,以及 -1
如果數組不包含 elem
.
例如,我們可以在包含成績的數組中查找第一次出現的成績:
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("Element is present");
} else {
console.log("Element is not present");
}
如果我們傳入 F
, 打印出足夠的信息:
Element is not present
檢查對像數組是否包含對象
some() 功能
搜索對象時,includes()
檢查提供的對象引用是否與數組中的引用匹配。這很少是我們想要的,因為對象可以有相同的字段,對應的值,但不同的引用。
我們可以使用 some()
按對象內容搜索的方法。 some()
方法接受一個參數接受一個回調,該回調對數組中的每個值執行一次,直到找到滿足 callback
設置的條件的元素 函數,並返回 true
.
免費電子書:Git Essentials
查看我們的 Git 學習實踐指南,其中包含最佳實踐、行業認可的標準以及隨附的備忘單。停止谷歌搜索 Git 命令並真正學習 它!
我們來看看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 中檢查數組是否包含值的方法。
我們已經介紹了 includes()
函數,如果值存在則返回一個布爾值。 indexOf()
函數返回值的索引(如果存在),並且 -1
如果不是。
最後,對於對象,some()
函數幫助我們根據其內容搜索對象的存在。