js判断一个元素是否在数组中(大总结)
判断某元素是否在数组中 ? 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 ))
 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号