js判断对象数组中是否存在某个对象
1. 如果要判断数组中是否存在某个元素的话很好判断,直接用数组的indexOf方法就好,存在返回当前索引不存在返回-1
var arr=[1,2,3,4] arr.indexOf(3) // 2 arr.indexOf(5) // -1
2. 要只是判断的话是可以遍历后判断对象的属性是否相同的,像这种:
arr.forEach(item=>{if(item.name=='Alex'){alert('存在这个元素');} })
3. 但实际中往往是需要动态添加或删除对象或元素的,用这个方法的话不好操作,可能会添加或删除掉多个,可以是用string的indexOf方法来判断
const option = {name:'111'} // 如果数组里面本身不存在这个对象则把这个加进去 if(JSON.stringify(arr).indexOf(JSON.stringify(option))==-1){arr.push(option); // 进行动态的操作 }
这个判断是可以,但存在一个问题需要注意一下,如果对象的顺序不一样,是不能检测到重复的
例如arr = [{name:'张三', sex:'男'}]
option = {sex:'男', name:'张三'}
利用上述方法检测的话,实际上该数组是存在这个数组对象的,但如果用string的indexOf方法是不能检测对的,用这个方法的时候这个点需要注意
4. 还有一个常用方法是设一个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. 利用数组API some来判断
var result = arr.some(item=>{if(item.name=='张三'){return true } })console.log(result) // 如果arr数组对象中含有name:'张三',就会返回true,否则返回falseif(result){ // 如果存在 // do something }
转载于:https://www.cnblogs.com/leiting/p/9253461.html
js判断对象数组中是否存在某个对象相关推荐
- 如何拿到对象数组中的某一对象的元素(JS的filter方法)
如何拿到对象数组中的某一对象的元素 在写一个简单的商品管理系统的时候,遇到了一个问题,我接口中需要传递的参数是一个role_id,但是我在页面上显示是角色名称 通过对filter()方法的使用,拿到对 ...
- js获取对象数组中指定属性值对象_3分钟学会操作JavaScript内置对象,快来试试吧...
1 - 内置对象 1.1 内置对象 JavaScript 中的对象分为3种:自定义对象 .内置对象. 浏览器对象. 前面两种对象是JS 基础 内容,属于 ECMAScript: 第三个浏览器对象属于 ...
- js 对象数组中的已知对象的属性得到对象下标
arr 对象数组, wyw已知属性 多用于接口返回数据后根据已知属性查其他属性 var arr = new Array({"name": "wxx", &quo ...
- JS判断一个数组中是否有重复值的三种方法
方法一: var s = ary.join(",")+","; for(var i=0;i<ary.length;i++) { if(s.replace( ...
- 通过属性值从对象数组中获取JavaScript对象[重复]
本文翻译自:Get JavaScript object from array of objects by value of property [duplicate] This question alr ...
- 前端JS:判断list(数组)中的json对象是否重复
前端JS:判断list(数组)中的json对象是否重复 <!DOCTYPE html> <html> <head> <meta charset="u ...
- js小白操作:判断空值、判断数组最大最小值、判断map是否为空、字符串转int、取float型小数点后两位数、判断数组中是否包含某个对象
js小白操作:判断空值.判断数组最大最小值.判断map为空的情况.字符串转int Js基础操作 一.判断空值 undefined 和 null 二.判断map是否为空 三.取数组最大最小值 1.使用 ...
- 3.js中判断数组中是否存在某个对象/值,判断数组里的对象是否存在某个值 的五种方法 及应用场景|判断数组里有没有某对象,有不添加,没有则添加到数组
3.js中判断数组中是否存在某个对象/值,判断数组里的对象是否存在某个值 的五种方法 及应用场景 一.当数组中的数据是简单类型时: 应用js中的indexof方法:存在则返回当前项索引,不存在则返回 ...
- js 加总数组中某一列_js根据对象数组中某一属性值,合并相同项,并对某一属性累加处理...
js根据对象数组中某一属性值,合并相同项,并对某一属性累加处理 Example: 根据code合并数组,并将sl值累加,如下两种方法: let data = [{ code: 1001, name: ...
最新文章
- 2019第四周作业(基础作业+挑战作业)
- 查看Linux 硬件配置
- UILabel设置行间距之后的自适应高度
- 反射得到父类的私有字段
- C# 添加xml节点多了xmlns属性问题
- [Vani有约会]雨天的尾巴 (线段树合并)
- pheonix从入门到进阶
- 初识Mysql(part18)--我需要知道的4个关于联结的小知识点
- 工具分享 --- tinyPNG,大图片压缩工具
- oracle rollup分组没有数据时为0_Hive 入门数据分析基础 5
- phpcms解决(sql数据库数据与页面显示结果)调用的栏目数据条数不一致问题 - 总结篇
- GitHub Package Registry 发布!你依旧是那个我们所爱的 GitHub!
- [转载] python基础:面向对象-封装
- 浙大图灵班今年首次招生:院士授课,本科生配学业导师
- 微信网址遮罩引导法升级版,微信自动跳转默认浏览器打开HTML
- 用户画像场景与技术实现方案
- LaTeX 图片加标题 文本分栏自动换行
- Manjaro安装教程及安装后操作
- Java面试宝典(2021版)
- MOV AX,BX 与 MOV AX,[BX] 区别