node js 判斷數組中是否包含某個值


判斷數組中是否包含某個值這里有四種方法。
用的測試數據:

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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM