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判断对象数组中是否存在某个对象相关推荐

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

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

  2. js获取对象数组中指定属性值对象_3分钟学会操作JavaScript内置对象,快来试试吧...

    1 - 内置对象 1.1 内置对象 JavaScript 中的对象分为3种:自定义对象 .内置对象. 浏览器对象. 前面两种对象是JS 基础 内容,属于 ECMAScript: 第三个浏览器对象属于 ...

  3. js 对象数组中的已知对象的属性得到对象下标

    arr 对象数组, wyw已知属性 多用于接口返回数据后根据已知属性查其他属性 var arr = new Array({"name": "wxx", &quo ...

  4. JS判断一个数组中是否有重复值的三种方法

    方法一: var s = ary.join(",")+","; for(var i=0;i<ary.length;i++) { if(s.replace( ...

  5. 通过属性值从对象数组中获取JavaScript对象[重复]

    本文翻译自:Get JavaScript object from array of objects by value of property [duplicate] This question alr ...

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

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

  7. js小白操作:判断空值、判断数组最大最小值、判断map是否为空、字符串转int、取float型小数点后两位数、判断数组中是否包含某个对象

    js小白操作:判断空值.判断数组最大最小值.判断map为空的情况.字符串转int Js基础操作 一.判断空值 undefined 和 null 二.判断map是否为空 三.取数组最大最小值 1.使用 ...

  8. 3.js中判断数组中是否存在某个对象/值,判断数组里的对象是否存在某个值 的五种方法 及应用场景|判断数组里有没有某对象,有不添加,没有则添加到数组

    3.js中判断数组中是否存在某个对象/值,判断数组里的对象是否存在某个值 的五种方法 及应用场景 一.当数组中的数据是简单类型时: 应用js中的indexof方法:存在则返回当前项索引,不存在则返回 ...

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

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

最新文章

  1. 2019第四周作业(基础作业+挑战作业)
  2. 查看Linux 硬件配置
  3. UILabel设置行间距之后的自适应高度
  4. 反射得到父类的私有字段
  5. C# 添加xml节点多了xmlns属性问题
  6. [Vani有约会]雨天的尾巴 (线段树合并)
  7. pheonix从入门到进阶
  8. 初识Mysql(part18)--我需要知道的4个关于联结的小知识点
  9. 工具分享 --- tinyPNG,大图片压缩工具
  10. oracle rollup分组没有数据时为0_Hive 入门数据分析基础 5
  11. phpcms解决(sql数据库数据与页面显示结果)调用的栏目数据条数不一致问题 - 总结篇
  12. GitHub Package Registry 发布!你依旧是那个我们所爱的 GitHub!
  13. [转载] python基础:面向对象-封装
  14. 浙大图灵班今年首次招生:院士授课,本科生配学业导师
  15. 微信网址遮罩引导法升级版,微信自动跳转默认浏览器打开HTML
  16. 用户画像场景与技术实现方案
  17. LaTeX 图片加标题 文本分栏自动换行
  18. Manjaro安装教程及安装后操作
  19. Java面试宝典(2021版)
  20. MOV AX,BX 与 MOV AX,[BX] 区别

热门文章

  1. JAVA 技术类分享(一)
  2. fastJson去掉指定字段
  3. Maven详解(转)
  4. 字符串字符和数字分割
  5. C++ operator操作符重载(++,--,-,+,())
  6. [silverlight基础]仿文字连接跑马灯效果-高手绕道
  7. ASP.NET存储Session的StateServer
  8. go get 的不再src目录中_Go 每日一库之 sqlc:根据 sql 生成代码
  9. 《海龟交易法则》经典梳理
  10. 定时器和多线程的不同