js在数组中查找某一个值是否存在

一、jQuery方法

1、$.inArray()方法

具体操作如下:

var array = ['a','ab','abc'];

$.inArray('abc',array);

下标从0开始,若结果为-1则表示此数组中不存在这个值。当需要在前端为数组去重的时候,可以使用该方法来判断。

二、js方法

1.indexOf()  -> ES5:返回索引,大于0则存在,-1不存在

const array = ['apple', 'banance', 'orange']

array.indexOf('apple')    // 0 存在

array.indexOf('strawBerry')     // -1不存在

2.find()   -> ES6:用于找出第一个符合条件的数组成员,他的参数是一个回调函数,所有数组成员一次执行这个回调函数,知道找出第一个返回值为true的成员,然后返回该成员,如果没有符合条件的成员,就返回undefined

const array = ['apple', 'banance', 'orange']

array.find(obj => obj == 'banance')    //banance 存在

array.find(obj => obj == 'strawBally')    //undefined 不存在

或者这种写法:

[1,5,15,20,25].find((value,index,arr) => { return value > 20; })

上面代码中,find方法接受是三个参数,依次为当前成员,当前位置和原数组。

const arrayList = [

  {name: '张三'}, {name: '李四'}

]

arrayList.find(obj => obj.name == '李四')        //{name: '李四'} 存在

arrayList.find(obj => obj.name == '王五')        //undefined 不存在

3.findIndex()  -> ES6:返回第一个符合条件的数组成员的位置,如果所有的成员都不符合条件,就返回-1

const array = ['apple', 'banance', 'orange']

array.findIndex(obj => obj == 'banance')    //大于0存在

array.findIndex(obj => obj == 'strawBally')    //-1 不存在

3.includes():返回值为布尔类型(note:ie不太兼容,慎用)

const array = ['apple', 'banance', 'orange']

array.includes('banance')      //true存在

array.includes('strawBally')      //false存在

4.filter():返回一个数组

const array = ['apple', 'banance', 'orange']

array.filter(obj => obj == 'orange')     //['orange'] 存在

array.filter(obj => obj == 'strawBally')     //[] 不存在

const array = [{ name: 'banance' }, { name: 'apple' }]

console.log(array.filter(obj => obj.name === 'apple'))    //[{name: 'apple'}] 存在

console.log(array.filter(obj => obj.name === 'strawBally'))    //[] 不存在

发布了40 篇原创文章 · 获赞 18 · 访问量 15万+

猜你喜欢

转载自blog.csdn.net/yinxiangzhongqing/article/details/104396063