node js 判斷陣列中是否包含某個值
阿新 • • 發佈:2018-12-28
判斷陣列中是否包含某個值這裡有四種方法。
用的測試資料:
let arr=["a","b","c"];
let arr2={"a":"aaa","b":"bbb","c":"ccc"};
in判斷是否在陣列的key裡
in
操作符針對的是key
,而非value
。而對於普通的一維陣列來說,key
是隱藏的。所以,對於判斷某個陣列中是否含有某個值來說,這個方案並不合適。
console.log("1:","a" in arr); // false
console.log("2:","aa" in arr); // false
console.log("3:",2 in arr) ; // true
console.log("4:",5 in arr); // false
console.log("5:","a" in arr2); // true
console.log("6:","aa" in arr2); // false
indexOf列表(字串)是否包含
indexOf僅用於字串、列表,不能用於JSON物件(字典)。
console.log("7:",arr.indexOf("c")); // 2
console.log("8:",arr.indexOf("aa")); // -1
console.log("9:",arr2.indexOf("b")); //報錯
console.log("10:",arr2.indexOf("aaa")); //報錯
includes用於列表和字串
includes僅用於字串、列表,不能用於JSON物件(字典)。
返回值為布林值。
console.log("11:",arr.includes("a")); // true
console.log("12:",arr.includes("aa")); // false
console.log("13:",arr2.includes("a")); //報錯
console.log("14:",arr2.includes("aa")); //報錯
自定義函式inArray
自定義函式inArray可以用於陣列,也可以用於物件。
function inArray(search,array){
for(var i in array){
if(array[i]==search){
return true;
}
}
return false;
}
console.log("15:",inArray("a",arr));
console.log("16:",inArray("aa",arr));
console.log("17:",inArray("a",arr2));
console.log("18:",inArray("bbb",arr2));
總結
陣列是否包含某個值的判斷方案有:includes/indexOf/inArray
。
陣列是否包含有個鍵的判斷方案是:in
。
物件是否包含某個屬性值的方案是:inArray
。
物件是否包含某個屬性名的方案是:in
。
陣列或者物件通用的判斷方式包括:in/inArray
。