js判断对象数组中是否存在某个对象

1. 如果要判断数组中是否存在某个元素的话很好判断,直接用数组的indexOf方法就好,存在返回当前索引不存在返回-1

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

2. 要只是判断的话是可以遍历后判断对象的属性是否相同的,像这种:

  1. arr.forEach(item=>{
  2. if(item.name==‘Alex‘){
  3. alert(‘存在这个元素‘);
  4. }
  5. })

3. 但实际中往往是需要动态添加或删除对象或元素的,用这个方法的话不好操作,可能会添加或删除掉多个,可以是用string的indexOf方法来判断

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

这个判断是可以,但存在一个问题需要注意一下,如果对象的顺序不一样,是不能检测到重复的

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

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

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

4. 还有一个常用方法是设一个flag来做判断的标识

  1. let flag = true;
  2. let msg = ‘‘;
  3. let arr = []
  4. if(arr.length<6){
  5. arr.forEach(item=>{
  6. if(data.id===item.id){ // 对象里的唯一标识id
  7. msg = ‘请勿重复添加!‘
  8. flag = false;
  9. }
  10. })
  11. }else{
  12. msg = ‘最多添加6个!‘
  13. flag = false;
  14. }
  15. if(flag){ // 如果满足条件-数组长度小于6,当前添加的值在数组里不存在,就把值添加进去
  16. arr.push(data)
  17. }else{ // 否则弹出提示信息
  18. alert(msg)
  19. }

5. 利用数组API some来判断

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

原文地址:https://www.cnblogs.com/zzsdream/p/11592309.html

时间: 2024-11-05 21:42:33

js判断对象数组中是否存在某个对象的相关文章

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

方法一: var s = ary.join(",")+","; for(var i=0;i<ary.length;i++) { if(s.replace(ary[i]+",","").indexOf(ary[i]+",")>-1) { alert("数组中有重复元素:" + ary[i]); break; } } 方法二: var ary = new Array("

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

前端JS:判断list(数组)中的json对象是否重复 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Test</title> <script> function displayDate(){ var arr = [{ d: '2015-10-12',C:'Apple'}, { d: '2015-10-12',C:'Apple'}

js对象数组操作之一:对象数组中对象去重的方法总结

在日常开发业务中,经常会有一个数组由多个对象构成,需要对这种数据结构进行操作,如下: const arr = [ { name:'tom', age:15 }, { name:'jack', age:18 }, { name:'tom', age:10 }, ...] 今天总结了一下 先说这种数据结构的去重方法,对于数组中的多个对象去除重复,需要设置布尔值来进行. 一.jquery方法 var oldArr = [ { name:'tom', age:15 }, { name:'jack', a

js如何删除数组中的第一个元素

js如何删除数组中的第一个元素:下面介绍一下如何利用javascript删除数组中的第一个元素,代码如下: var arr=["蚂蚁部落","青岛市南区",2,"antzone"]; console.log(arr); arr.shift(); console.log(arr); 以上代码可以删除数组中的第一个元素,具体可以参阅javascript的Array对象的shift()方法一章节. 原文地址是:http://www.softwhy.co

[码海拾贝 之JS] JS 之删除数组中的元素

前言 在Java 中要从一个list 中删除一个元素, 直接使用 remove 方法就可以了. 在js 中的array 并没有 remove 方法, 但是在js 中array 有splice 方法可以达成相同的效果, 除此之外, 还可以使用其他方式来实现这个效果. 使用splice 方法实现从数组中删除元素 首先看一下 splice 方法如何使用. 语法 arrayObject.splice(index,howmany,item1,.....,itemX) 参数 描述 index 必需.整数,规

js如何删除数组中重复的值

js如何删除数组中重复的值:有时候需要删除数组中重复的元素,下面是分享一下常用的代码,希望能够给需要的朋友带来一定的帮助.代码实例如下: Array.prototype.deleteEle=function() { var obj={}; var newArr=[]; var i,j; for(i=0;i<this.length;i++) { if(typeof(obj[this[i]])=="undefined") { obj[this[i]]=""; }

react找到对象数组中指定的值

找到对象数组中指定的值var array = [            { label: "Custom", value: "0" },            { label: "Admin", value: "1"}        ]要找到array中value为0的label值var a = array.find(item => item.value == 0);var label = a.label; 原文地址:h

关于ivx中将对象数组的某一列添加到另一对象数组中的经验总结

在这个demo中我们要做的就是点击按钮Click后将原始对象数组中的姓名列和性别列的添加到新的对象数组中.1.首先给按钮添加一个点击事件,然后动作的对象选择新的对象数组,执行的动作选择从另一对象数组添加列.2.对象数组一栏选择原始对象数组:列名一栏,如果只是添加一列可以直接填入列名,如果是多个列可以用英文逗号将列名隔开或者采用数组格式.3.最后我们可以在前台初始化时和点击按钮添加列后都打印一下新的对象数组的值看一下结果.前台初始化时新的对象数组是空的,点击按钮后原始对象数组的姓名列和性别列则已经

js 巧妙去除数组中的重复项

1.代码如下: var toObject = function(a) { var o = {}; for (var i=0, j=a.length; i<j; i=i+1) { // 这里我调整了下, YUI源码中是i<a.length o[a[i]] = true; } return o; } var keys = function(o) { var a=[], i; for (i in o) { if (o.hasOwnProperty(i)) { // 这里, YUI源码中是lang.h