判断一个字符串是否是数组中的某一项

let arr = ['aaaa','bbbb','cccc'];
判断'aaaa'是arr中的一项么?
1、arr.indexOf() 兼容性ie9以下不支持
返回查找项,在数组中的索引,没找到返回-1,如果查找项是复合对象,都会返回-1

let arr = ['aaaa','bbbb','cccc',34,['b','x'],{name:'liuli'}];
alert(arr.indexOf('bbbb'))
alert(arr.indexOf(['b','x']))
alert(arr.indexOf({name:'liuli'}))

2、arr.includes()
找到返回true,没找到返回false,查找的是复合类型对象,返回false

let arr = ['aaaa','bbbb','cccc',34,['b','x'],{name:'liuli'}];
alert(arr.includes('bbbb'))
alert(arr.includes(['b','x']))
alert(arr.includes({name:'liuli'}))

3、arr.find()
参数是一个函数,arr.find((currentValue, index, arr)=>{},thisValue)
找到返回,符合条件的值,只要找到,后面的项不会再执行,执行完数组也没有匹配项,返回undefined

let arr = ['aaaa','bbbb','cccc',34,['b','x'],{name:'liuli'}];
let res = arr.find((current,index,arr)=>{
  return current>10
})
console.log(res)

4、arr.findIndex()
第一个函数是参数,同上,但返回的是索引位置,找不到返回-1

let arr = ['aaaa','bbbb','cccc',34,['b','x'],{name:'liuli'}];
let resIndex = arr.findIndex((current,index,arr)=>{
  return current>10
})
console.log(resIndex)

5、for循环查找

let str = 'aaaa';
let hasStr = false;
let arr = ['aaaa','bbbb','cccc',34,['b','x'],{name:'liuli'}];
for(let i=0;i

6、forEach

let str = 'aaaha';
let hasStr = false;
let arr = ['aaaa','bbbb','cccc',34,['b','x'],{name:'liuli'}];
arr.forEach((val,index)=>{
    if(val === str){
        hasStr = true;
        return;
    }
})
console.log(hasStr)

你可能感兴趣的:(判断一个字符串是否是数组中的某一项)