js如何判断一个数组包含某个值,见///2018年8月24日发表的方案比较 作者:苏楠叔叔 来源:程序好聪明啊~
在这篇文章中,你将看到:如何在js中判断一个数组是否包含某个值。 功能上与php函数类似。 本文中的几种解决方案都可以在节点服务器或更高版本的浏览器中执行。
js如何判断一个数组包含某个值,在///方案比较中(图3-1)
在下面的解决方案截图中,苏南叔叔可能会交替使用浏览器或服务器端节点。 本文的测试环境为node@8.11.1、@67.0.3396.99。
环境描述
本文的测试数据为以下两个值:
let arr=["a","b","c"];
let arr2={"a":"aaa","b":"bbb","c":"ccc"};
选项 1,在
in 运算符的目标是键,而不是值。 对于普通的一维数组,键是隐藏的。 因此,该方案不适合判断数组是否包含某个值。
in方案的测试代码如下:
console.log("1:","a" in arr);
console.log("2:","aa" in arr);
console.log("3:",2 in arr);
console.log("4:",5 in arr);
console.log("5:","a" in arr2);
console.log("6:","aa" in arr2);
测试结果为:
js如何判断一个数组包含某个值,///解决方案比较(图3-2)
选项二,
苏南叔叔的印象是,是用来做字符串的。 但这里如果用于数组的话也是可以执行的。 但是用在对象obj上时,就会报错。
console.log("7:",arr.indexOf("a"));
console.log("8:",arr.indexOf("aa"));
// console.log("9:",arr2.indexOf("b")); //报错
// console.log("10:",arr2.indexOf("aaa")); //报错
结果发现:
7: 0
8: -1
第三种解决方案,
同样,只能用于数组操作。
console.log("11:",arr.includes("a"));
console.log("12:",arr.includes("aa"));
//console.log("13:",arr2.includes("a")); //报错
//console.log("14:",arr2.includes("aa")); //报错
运行结果为:
11: true
12: false
选项4、自定义功能
此自定义函数可用于数组或对象。
当然,在php中,这个函数的名字应该是,所以在js的世界里,入乡随俗,改个名字就好了~
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));
运行结果为:
:这是【评论】的可见内容
js如何判断一个数组包含某个值, ///解决方案比较(图3-3)
总结
更多节点相关经验文章请点击苏南叔叔的文章列表:
【源码】本文及相关软件的代码片段,请点击此处查看更多
【绝密】秘文入口,只教给有缘人
js节点