JavaScript >> Javascript 文檔 >  >> JavaScript

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() 函數幫助我們根據其內容搜索對象的存在。


Tutorial JavaScript 教程
  1. 現代 JavaScript 中的優雅模式:Ice Factory

  2. 從 Sectigo 安裝代碼簽名證書(在 Windows 上簽署 Electron 應用程序)

  3. 使用 GCP 的 25 天無服務器

  4. 響應式導航欄不粘在某些屏幕上

  5. 變量 JavaScript 後的問號 |示例代碼

  6. #5) JavaScript 是靜態類型語言還是動態類型語言🤔

  7. 如何通過限制 CPU 使用來優化 Jest 運行

  1. 從 URL 創建一個 JavaScript 數組

  2. 在 Markdown 中安全地嵌入 YouTube 和其他 iframe 元素

  3. HTML5畫布中的簡單加載動畫

  4. 基本減速機模式

  5. 將 Bootstrap CDN 鏈接添加到 Gatsby

  6. 對 Hey.com 技術的一些偷窺(VI - 模板頁面更新)

  7. React - 風格化

  1. 使用 TypeScript、Node、Express 和 Vue 構建 Instagram - 第 3 部分

  2. 使用 Shared Workers 擴展 WebSocket 連接

  3. Svelte 3 - 如何與 svelte 路由集成

  4. 如何使用本地策略實現 NestJS 護照身份驗證?