一、基礎判斷方法
JS數組是否包含某個元素,最基礎的判斷方法是通過for循環遍曆數組中的每一個元素,依次判斷是否等於目標元素:
const arr = [1, 2, 3, 4, 5];
const target = 3;
let contains = false;
for(let i = 0; i < arr.length; i++) {
if(arr[i] === target) {
contains = true;
break;
}
}
console.log(contains); // true
基本思路就是設置一個標誌位contains,如果數組中有元素等於目標元素,則將標誌位賦值為true,否則為false。在循環中加入break是為了提高效率,避免遍歷整個數組。
二、ES6新方法includes()
ES6中新增了一個數組方法includes(),用於判斷一個數組是否包含某個元素,其用法非常簡單明了:
const arr = [1, 2, 3, 4, 5];
const target = 3;
const contains = arr.includes(target);
console.log(contains); // true
includes()方法返回一個布爾值,表示數組是否包含目標元素。該方法實現了上述基礎判斷方法,但代碼簡潔清晰,更易讀懂。
三、ES6新方法find()
ES6中新增了另一個數組方法find(),用於找出第一個滿足條件的數組成員,其用法如下:
const arr = [1, 2, 3, 4, 5];
const target = 3;
const contains = arr.find(item => item === target);
console.log(contains); // 3
find()方法的參數是一個回調函數,該函數接收三個參數:當前值,當前索引和原數組。在本例中,回調函數使用箭頭函數簡寫,判斷條件為當前值是否等於目標元素。如果找到滿足條件的元素,返回該元素;否則返回undefined。由於find()方法只查找第一個滿足條件的元素,因此與原數組長度無關,效率比for循環高。
四、ES6新方法some()
ES6中還新增了一個數組方法some(),用於檢測數組中是否存在滿足條件的元素,其用法如下:
const arr = [1, 2, 3, 4, 5];
const target = 3;
const contains = arr.some(item => item === target);
console.log(contains); // true
some()方法的參數也是一個回調函數,該函數同樣接收三個參數:當前值,當前索引和原數組。在本例中,回調函數同樣是使用箭頭函數簡寫,判斷條件為當前值是否等於目標元素。some()方法返回一個布爾值,表示是否至少有一個數組元素滿足條件。該方法只要找到一個符合條件的元素就會立即停止遍歷,因此效率比for循環高。
五、lodash的方法
lodash是一款非常流行的JavaScript工具庫,其中包含了豐富的數組、字符串、函數等常用方法。lodash中也提供了判斷一個數組是否包含某個元素的方法,用法非常簡單:
const _ = require('lodash');
const arr = [1, 2, 3, 4, 5];
const target = 3;
const contains = _.includes(arr, target);
console.log(contains); // true
通過const _ = require(‘lodash’)引入lodash庫後,就可以直接使用其中的includes()方法來判斷一個數組是否包含某個元素了。lodash中提供的方法往往是經過高度優化和封裝的,使用起來非常簡單方便。
原創文章,作者:DUXHF,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/371528.html