一、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(),每種方法都有優缺點。在實際項目中需要根據具體情況選擇最適合的方法。
原創文章,作者:ICFSU,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/372405.html