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。

转载于:https://www.cnblogs.com/wjcoding/p/11505184.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值