一、如何判斷js數組是否包含某個元素?
function isContainElement(arr, element){
for(var i=0; i<arr.length; i++){
if(arr[i]==element){
return true;
}
}
return false;
}
//demo
var arr = [1, 2, 3, "a", "b", "c"];
var element1 = "a";
var element2 = "d";
console.log(isContainElement(arr, element1)); // 輸出.true
console.log(isContainElement(arr, element2)); // 輸出.false
這是js中最基礎也是最常用的判斷數組包含元素的方法。可以簡單地通過循環判斷是否存在某個元素。
二、es6語法中的includes方法
//es6新增的Array.prototype.includes()方法
var arr = [1, 2, 3, "a", "b", "c"];
console.log(arr.includes("a")); // 輸出.true
console.log(arr.includes("d")); // 輸出.false
es6新增了Array.prototype.includes()方法,使用這個方法可以更加簡單地判斷數組是否包含某個元素。
三、利用indexOf方法判斷
var arr = [1, 2, 3, "a", "b", "c"];
console.log(arr.indexOf("a")!=-1); // 輸出.true
console.log(arr.indexOf("d")!=-1); // 輸出.false
在ie7及以上版本和大部分其他瀏覽器中,數組對象也有一個indexOf方法,這個方法也可以用於判斷數組是否包含某個元素。indexOf返回的是元素在數組中第一次出現的位置,如果找不到則返回-1。
四、問題解決:如何對數組對象進行包含判斷?
var obj1 = {name:"Tom", age:25};
var obj2 = {name:"Jerry", age:30};
var obj3 = {name:"Lucy", age:28};
var arr = [obj1, obj2, obj3];
function isContainObj(arr, obj){
for(var i=0; i<arr.length; i++){
if(JSON.stringify(arr[i])===JSON.stringify(obj)){
return true;
}
}
return false;
}
console.log(isContainObj(arr, {name:"Tom", age:25})); // 輸出.true
console.log(isContainObj(arr, {name:"Tom", age:20})); // 輸出.false
如果數組對象中存放的是對象,要進行包含判斷也需要特別處理。常用的方法是比較對象的json字元串是否相同。
五、結語
通過以上內容,我們可以學習到多種js數組是否包含的方法。在實際開發中可以根據實際需求選擇合適的方法使用。如果數組對象存放的是對象,則需要特別處理。
原創文章,作者:XDGFF,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/372084.html