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

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

var arr=[1,2,3,4]
arr.indexOf(3) // 2
arr.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,否则返回false
if(result){ // 如果存在// do something}

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

  1. 前端JS:判断list(数组)中的json对象是否重复

    前端JS:判断list(数组)中的json对象是否重复 <!DOCTYPE html> <html> <head> <meta charset="u ...

  2. js 加总数组中某一列_js根据对象数组中某一属性值,合并相同项,并对某一属性累加处理...

    js根据对象数组中某一属性值,合并相同项,并对某一属性累加处理 Example: 根据code合并数组,并将sl值累加,如下两种方法: let data = [{ code: 1001, name: ...

  3. js获取对象数组中的id集合

    js获取对象数组中的id集合 const ids = Array.from(this.checkList,({ id }) => id); // ["16921C72E0C64002& ...

  4. js计算对象数组中某个属性合计

    js 计算对象数组中某个属性合计 countTotal调用示例: let arr = [{id: 0, price: 199.88},{id: 1, price: 299.88},{id: 2, pr ...

  5. js 根据id获取数组中对应的对象

    js 根据id获取数组中对应的对象 const id = xxxlet obj = array.find(function (e) {return e.id=== id})console.log('o ...

  6. js合并两个数组中同一类型的type对象

    // js合并两个数组中同一类型的type对象 // 接口返回的数据格式 [{dayAt: "2023-01-11"lastAt: "2023-01-11 14:36:3 ...

  7. 如何拿到对象数组中的某一对象的元素(JS的filter方法)

    如何拿到对象数组中的某一对象的元素 在写一个简单的商品管理系统的时候,遇到了一个问题,我接口中需要传递的参数是一个role_id,但是我在页面上显示是角色名称 通过对filter()方法的使用,拿到对 ...

  8. 判断对象数组中是否存在重复项

    需求:判断对象数组中是否存在重复项 解决思路:根据数组去判断是否有重复项. 首先将对象数组转成数组(提取重复的选项) 然后判断数组是否存在重复项即可. 注:此方法适用于单个决定性条件导致重复的对象,多 ...

  9. JS对象数组中依据某个属性的值分组

    问题:需要在对象数组中根据某个属性值进行归类或者分组 const dataList = [{name: 'Apple',type: 'Fruit',price: '¥1.5'},{name: 'Ban ...

  10. js 删除对象数组中指定元素

    操作对象数组中指定条件的元素: 例: let arr = [{createDate: "2021-03-20",id: 1 }, {createDate: "2021-0 ...

最新文章

  1. 饥荒海难机器人怎么用_饥荒海难机器人作用详解 机器人有什么用
  2. Git知识点笔记-基本常识
  3. 可能是.NET领域性能最好的对象映射框架——Mapster
  4. Python 数据分析三剑客之 Matplotlib(二):文本描述 / 中文支持 / 画布 / 网格等基本图像属性
  5. 比较好的电脑系统_效果好的筛分移动破碎站有优惠吗?
  6. python iotextwrapp执行不动_Python tkinter - 第10章 文本控件(Text)方法
  7. 深入浅出MySQL之优化
  8. enovia PLM : add new value to SPEO
  9. 将寄存器放入IOB的方法
  10. windows批处理脚本bat命令解析【6】常用命令整理
  11. mysql的information_schema数据库
  12. Arcgis js featureLayer加载完成之后,对其加载的要素重新定义样式
  13. wps里表格中间的字怎么置顶_怎么把wps文字放在最中间
  14. 利用Windows系统自带命令手工搞定病毒
  15. ORB-SLAM2 --- KeyFrame::AddConnection函数
  16. 浙大PTA基础编程题目集:7-1 厘米换算英尺英寸
  17. 最新海豚码支付系统APP监控支付码免签系统源码V6.0
  18. 华为LiteOS操作系统基础知识入门与内核移植
  19. 新版mysql改初始密码
  20. 西安航空学院计算机专业代码,西安航空职业技术学院专业代码

热门文章

  1. AUTOCAD——图块批量改名
  2. mysql与sim900a_sim900a和sim800a的区别是什么
  3. java rhino js类_Rhino -- 基于java的javascript实现
  4. python进行回归方程显著性检验
  5. python 视频培训
  6. 高斯滤波matlab函数,matlab自带函数实现高斯滤波(gauss filter)快速算法
  7. 开源力量 Linux内核源码深度解析与开发实战
  8. 六句话,看完新造车的2021
  9. 请求支付宝渠道报错:40006,Insufficient Permissions,ISV权限不足
  10. 彻底禁止Win10自动更新工具Windows Update Blocker v1.5 汉化版