一、for循环遍历
function isValueExist(list, value) {
for (var i = 0; i < list.length; i++) {
if (list[i] === value) {
return true;
}
}
return false;
}
var list = [1, 2, 3, 4, 5];
var value = 3;
console.log(isValueExist(list, value)); // output: true
这里我们通过使用for循环遍历list来查找值,如果找到与目标值相等的元素,则返回true,否则返回false。这是一种常见的方法,比较容易理解,但是当list元素数量大时,效率比其他方法低。
二、Array.prototype.indexOf()
var list = [1, 2, 3, 4, 5];
var value = 3;
console.log(list.indexOf(value) !== -1); // output: true
indexOf()方法可以返回指定元素在数组中的位置索引。如果不存在,则返回-1。所以我们可以使用indexOf()来判断该值是否存在于数组中。
三、Array.prototype.includes()
var list = [1, 2, 3, 4, 5];
var value = 3;
console.log(list.includes(value)); // output: true
includes()方法用于判断数组中是否包含指定元素,返回布尔值。该方法可以简化代码,同时具有更好的可读性。
四、Array.prototype.find()
var list = [{id:1, name:'apple'}, {id:2, name:'orange'}, {id:3, name:'banana'}];
var id = 2;
console.log(list.find(function(item){
return item.id === id;
})); // output: {id:2, name:'orange'}
find()方法用于查找符合条件的元素,找到第一个符合条件的元素即返回,如果没有找到则返回undefined. 在这个例子里,我们可以通过find()方法找到id等于2的元素。
五、Array.prototype.filter()
var list = [{id:1, name:'apple'}, {id:2, name:'orange'}, {id:3, name:'banana'}];
var id = 2;
console.log(list.filter(function(item){
return item.id === id;
})); // output: [{id:2, name:'orange'}]
filter()方法可以直接返回符合条件的所有元素组成的数组,比find()方法更加灵活。
总结
本文中我们介绍了JavaScript判断list是否存在某个值的多种方法,包括for循环遍历、indexOf()、includes()、find()、filter(),每种方法都有优缺点。在实际项目中需要根据具体情况选择最适合的方法。