100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > js中判断对象数组中是否存在某个对象 以及使用判断是否存在某个元素的indecOf()和find()方法

js中判断对象数组中是否存在某个对象 以及使用判断是否存在某个元素的indecOf()和find()方法

时间:2021-08-09 11:57:08

相关推荐

js中判断对象数组中是否存在某个对象 以及使用判断是否存在某个元素的indecOf()和find()方法

判断数组中是否存在某个元素

1.直接用indexOf(),如果存在则返回当前索引,如果不存在则返回-1;

var arr=[1,2,3,4]arr.indexOf(3) // 2arr.indexOf(5) // -1

注意:返回某个指定的字符串在数组中首次出现的位置,如果要查找最后出现的位置,使用lastIndexOf()

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

注意:当数组中的元素在测试条件时返回true时,find()返回符合条件的元素,之后的值不会再调用执行函数

注意:find()对于空数组,函数是不执行的;

注意:fund()并没有改变数组的原始值。

arr.find(function(value) {if(value === 要查找的值) {//则包含该元素}})

3.findIndex()

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

注意:当数组中的元素在测试条件时返回true,findIndx()返回符合条件的元素的索引位置,之后的值不会再调用执行函数。

注意:findIndex()对于空数组,函数是不会执行的。

注意:findIndex()并没有改变数组的原始值。

判断对象数组

1.只是判断对象的属性是否相同

arr.forEach(item=>{if(item.name=='Alex'){alert('存在这个元素');}})

2.需要动态添加或删除对象和元素的

const option = {name:'111'}// 如果数组里面本身不存在这个对象则把这个加进去if(JSON.stringify(arr).indexOf(JSON.stringify(option))==-1){arr.push(option); // 进行动态的操作}

需要注意:

例如arr = [{name:'张三', sex:'男'}]

option ={sex:'男', name:'张三'}

利用上述方法检测的话,实际上该数组是存在这个数组对象的,但如果用string的indexOf方法是不能检测对的,用这个方法的时候这个点需要注意

3.设置flag来做判断标识

let flag = true;let msg = '';let arr = []if(arr.length<6){arr.forEach(item=>{if(data.id===item.id){ // 对象里的唯一标识idmsg = '请勿重复添加!'flag = false;}})}else{msg = '最多添加6个!'flag = false;}if(flag){ // 如果满足条件-数组长度小于6,当前添加的值在数组里不存在,就把值添加进去arr.push(data)}else{ // 否则弹出提示信息alert(msg)}

5.利用数组的some()方法

var result = arr.some(item=>{if(item.name=='张三'){return true } })console.log(result) // 如果arr数组对象中含有name:'张三',就会返回true,否则返回falseif(result){ // 如果存在// do something}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。