一、使用indexOf方法
indexOf方法可以用来判断一个数组是否包含特定值,如果包含则返回该值在数组中的索引,否则返回-1。
let arr = [1, 2, 3, 4];
console.log(arr.indexOf(3)); // 2
console.log(arr.indexOf(5)); // -1
但是需要注意的是,indexOf方法只能判断原始类型的值,对于复杂类型的值(比如对象),就需要我们另寻他法。
二、使用includes方法
includes方法可以用来判断一个数组是否包含特定值,如果包含则返回true,否则返回false。
let arr = [1, 2, 3, 4];
console.log(arr.includes(3)); // true
console.log(arr.includes(5)); // false
需要注意的是,includes方法也只能判断原始类型的值,对于复杂类型的值同样需要我们另寻他法。
三、使用some方法
some方法可以用来判断一个数组中是否任意一个元素满足特定条件,如果满足则返回true,否则返回false。
let arr = [1, 2, 3, 4];
console.log(arr.some(item => item > 2)); // true
console.log(arr.some(item => item > 5)); // false
通过some方法我们可以判断数组中是否包含复杂类型的值,只需以该复杂类型值的某个属性作为判断依据。
let arr = [{name: 'Tom', age: 20}, {name: 'Lily', age: 18}];
console.log(arr.some(item => item.name === 'Tom')); // true
console.log(arr.some(item => item.name === 'Bob')); // false
四、使用filter方法
filter方法也可以用来判断一个数组中是否包含特定值,不同的是,它会返回一个新数组,该数组包含符合特定条件的元素。
let arr = [1, 2, 3, 4];
console.log(arr.filter(item => item > 2)); // [3, 4]
console.log(arr.filter(item => item > 5)); // []
同样,通过filter方法我们也可以判断数组中是否包含复杂类型的值。
let arr = [{name: 'Tom', age: 20}, {name: 'Lily', age: 18}];
console.log(arr.filter(item => item.name === 'Tom')); // [{name: 'Tom', age: 20}]
console.log(arr.filter(item => item.name === 'Bob')); // []
五、使用find方法
find方法可以用来寻找数组中符合条件的第一个元素。
let arr = [1, 2, 3, 4];
console.log(arr.find(item => item > 2)); // 3
console.log(arr.find(item => item > 5)); // undefined
同样,通过find方法我们也可以判断数组中是否包含复杂类型的值。
let arr = [{name: 'Tom', age: 20}, {name: 'Lily', age: 18}];
console.log(arr.find(item => item.name === 'Tom')); // {name: 'Tom', age: 20}
console.log(arr.find(item => item.name === 'Bob')); // undefined
总结
以上就是JS中判断数组是否包含特定值的几种方法,并且针对复杂类型的值也给出了使用示例,通过这些方法可以更加高效地实现代码逻辑。