js判断一个元素是否在数组中(大总结)

948 阅读2分钟
判断某元素是否在数组中 ?

js中如果存在一个数组,如何判断一个元素是否存在于这个数组中呢?

方法一:可以通过for循环的判断:

var arr=["apple","banana","orange"]//待匹配的数组
var value="orange"//要匹配的元素
function isInArray(arr,value){
for(var i = 0; i < arr.length; i++){
// console.log(value)
if(value === arr[i]){
console.log("匹配到value值,是数值中的第"+i+"个")
return true;
}
}
return false;
}
isInArray(arr,value)//执行语句

方法二:indexOf()如果元素存在于数组中,那么返回元素在数组中的索引值,如果不存在,返回-1:

var site = ['runoob', 'google', 'taobao','google'];
console.log(site.indexOf('google'))

那么我们可以通过放回的值去做相应的判断

 var index=site.indexOf('google')
if(index<-1){
console.log("不存在数组中")
}


方法三:find()找到第一个符合条件的数组元素。它的参数是一个回调函数,所有数组元素依次遍历该回调函数,直到找出第一个返回值为true的元素,然后返回该元素,否则返回undefined。

var ddd= arr.find(function(val,index,arr) {//val:当前选择的元素,index:当前元素的索引值,arr:当前元素所属的数组对象
return val === "taobao"
})
console.log(ddd)

提示:find() 对于空数组,函数是不会执行的

方法四:findIndex()找出数组里面第一个符合的值返回,如果没有就返回-1

array.findIndex()和array.find()十分类似,返回第一个符合条件的数组元素的位置,如果所有元素都不符合条件,则返回-1。

  let sd=arr.findIndex(function(val,index,arr){
return val === "googlccddddce"//找出数组里面第一个符合的值返回,如果没有就返回-1
})
console.log(sd)

方法五:filter() 创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素

function checkAdult(age) {

return age == "runoob";
}
console.log(arr.filter(checkAdult))

方法六:forEach()//其实forEach(),for in(),for of()都是与for()相同,通过遍历循环,在通过if去判断

var arr=["apple","banana","orange"]//待匹配的数组
var value="orange"
arr.forEach((item, index) => {
if(item=="orange"){
console.log(item,index);
}
})

方法七:arr.include() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false

var arr=["apple","banana","orange"]//待匹配的数组
var value="orange"
console.log(arr.include(value))

方法八:some()方法用于检测数组中的元素是否满足指定条件(函数提供)。 some() 方法会依次执行数组的每个元素: 如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。 如果没有满足条件的元素,则返回false。

var ages = [3, 10, 18, 20];

var pp=ages.some(function(age){ return age == 18; })

console.log(pp)

方法九:jq中使用$.inArray() 函数用于在数组中查找指定值,并返回它的索引值(如果没有找到,则返回-1),源数组不会受到影响,过滤结果只反映在返回的结果数组中。

var arr=["apple","banana","orange"]//待匹配的数组

 console.log($.inArray( "orange", arr ))

    以上总结就是这些了,个人推荐比较常用的一般是indexOf(),some(),每个用都有自己的好处,可以根据自己的实际项目进行运用哦!