js判断对象数组中的元素是否存在重复

这篇具有很好参考价值的文章主要介绍了js判断对象数组中的元素是否存在重复。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 1、使用 Array.some() 方法和自定义比较函数:

使用 Array.some() 方法遍历数组,对每个元素执行自定义的比较函数。比较函数使用 Array.findIndex() 方法来查找与当前元素相等且索引不同的元素,如果找到则表示存在重复元素。

    const array = [
        { value: '值1' },
        { value: '值2', key: 1688713651911 },
        { value: '值2', key: 1688713651347 }
    ]

    // 判断对象数组是否有相同属性 相同:true \ 不相同:false
    hasDuplicates(array) {
      return array.some((item, index) => {
        return (
          array.findIndex((v, i) => {
            return (
              i !== index &&
              JSON.stringify(v.value) === JSON.stringify(item.value)
            )
          }) !== -1
        )
      })
    }

    console.log(hasDuplicates(array)); //true

2、使用 Set 数据结构:

使用 Set 数据结构来去除重复元素,并比较 Set 的长度与原数组的长度是否相等,如果不相等则表示存在重复元素。

const array = [{ name: '值1' }, { name: '值2' }, { name: '值2' }];

function hasDuplicates(array) {
  // array.map(JSON.stringify):对数组进行映射操作,将每个对象元素转换为相应的字符串表示。
  // new Set(...) 它类似于数组,但只包含唯一的值,不会有重复项。
  const set = new Set(array.map(JSON.stringify));
  return set.size !== array.length;
}

console.log(hasDuplicates(array)); // true

请注意,这些方法中的比较函数使用 JSON.stringify() 来将对象转换为字符串进行比较。这种方法适用于包含简单属性的对象,如果对象中包含函数或循环引用等复杂情况,需要使用其他方式来比较对象的相等性。文章来源地址https://www.toymoban.com/news/detail-641690.html

到了这里,关于js判断对象数组中的元素是否存在重复的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • js中判断一个对象是否存在

    一、Boolean()方法 用Boolean()方法可以将Js中的任意数据类型转为布尔值: 二、用于判断xx是否存在 js一般会自动执行Boolean()方法,我们可以借此判断某个对象在js当前的执行环境中知否存在。如: 又如,可以判断当前环境下某个对象是否存在。 在为一个元素绑定了某个事件后,

    2024年02月13日
    浏览(60)
  • js判断对象是否存在某个属性的办法

    在 JavaScript 开发中,判断一个对象是否存某个属性在是非常基础的操作,也是开发者经常需要处理的问题之一。然而,繁琐的代码可能会让我们感到疲惫不堪,因此这里将介绍几种 JavaScript 小技巧,帮助你更高效地判断对象属性的存在性,提高代码效率⏱。 👋 技巧一: 使用

    2024年02月09日
    浏览(74)
  • JS判断对象、数组是否包含某个属性、某个值

    可以使用以下几种方法来判断对象是否包含某个属性: 1. in 操作符: 使用 in 操作符可以检查对象是否包含指定的属性。它会检查对象及其原型链上的所有属性。 2. hasOwnProperty() 方法: hasOwnProperty() 是对象的内置方法,用于检查对象自身是否具有指定的属性(不包括原型链上

    2024年02月09日
    浏览(72)
  • Java判断List集合中的对象是否包含有某一元素

    关于以下方法,直接可以在自己项目创建一个类,然后进行测试使用!文本末尾也提供了每个方法的运行结果,供大家参考使用! 文章大量使用到了Java8当中的Lambda表达式,以及stream流相关基础知识。如果您用的不熟,没关系,可以直接复制下面的方案然后进行套着使用即可

    2024年02月11日
    浏览(74)
  • selenium 判断元素是否存在

    目的:自动化中通常需要根据元素是否存在,来决定下一步的动作;比如 A存在就点击 下一步,B存在就点击保存;用于控制脚本的逻辑; selenium中判断元素有几种方式 1、find_element(locateType, locate) 2、WebDriverWait(self.driver, 20, 0.5).until(EC.presence_of_element_located((locateType, locate))) 那么

    2024年01月20日
    浏览(68)
  • 判断数组中的每个元素是否为正无穷大或负无穷大 numpy.isinf()

    【小白从小学Python、C、Java】 【计算机等级考试+500强双证书】 【Python-数据分析】 判断数组中的每个元素 是否为正无穷大或负无穷大 numpy.isinf() [太阳]选择题 请问关于以下代码的最后输出的是? import numpy as np a = np.array([-np.inf,0,np.inf]) print(\\\"【显示】a =\\\",a) print(\\\"【执行】np.i

    2024年02月08日
    浏览(54)
  • redis中使用bloomfilter判断元素是否存在

    由一个初始值为0的bit数组组成,和多个hash函数构成,用来判断集合中是否存在某个元素。 一个很长的二进制数组(00000000)+一系列随机hash算法映射函数。主要用于判断一个元素是否存在集合中。 本质:判断一个数据是否存在一个大的集合中。有,可能有,无则一定没有 一

    2024年02月15日
    浏览(119)
  • 微信小程序如何判断对象是否为空、判断值是否存在

    在 js 文件中需要对 data 里一些的对象进行判断是否为空 比如这里我要在页面加载时判断 data 中的 record 是否为空: 在 onload() 方法中使用 Object.key().length0 来判断: Object.keys()方法:将给定对象的所有可枚举属性变成一个字符串数组 解释:将需要判断的对象转换为一个字符

    2024年02月11日
    浏览(105)
  • 【LeetCode刷题(数组and排序)】:存在重复元素

    给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 示例 1: 输入:nums = [1,2,3,1] 输出:true 示例 2: 输入:nums = [1,2,3,4] 输出:false 示例 3: 输入:nums = [1,1,1,3,3,4,3,2,4,2] 输出:true 在对数字从小到大排序之后,数

    2024年02月07日
    浏览(51)
  • UI自动化 - 如何判断一个页面上元素是否存在?

    在做 UI 自动化时,使用 UI 自动化测试工具进行自动化测试,如何判断一个页面上元素是否存在? 有没有做过 UI 自动化测试,如何判断元素在页面上是否存在? 面试官想了解: 是否真的做过 UI 自动化测试 在做测试的时候遇到元素难定位的问题如何解决,如何判断元素在页

    2023年04月10日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包