You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何检测对象数组中是否存在重复元素

JS检测对象数组是否存在重复元素

需求说明

  • 实现一套检测逻辑,判断目标数组中是否存在重复的对象元素
  • 存在重复元素时返回true,无重复元素时返回false

待检测目标数组

var myarray = [
  {
    "msf": "3.98",
    "ptc": "5.00"
  },
  {
    "msf": "3.98",
    "ptc": "1.00"
  },
  {
    "msf": "3.98",
    "ptc": "1.00"
  }
]

预期输出

上述示例数组中索引1和索引2的两个对象,所有属性值完全一致,属于重复元素,预期检测返回结果为true。

实现代码

针对普通键值对对象、无嵌套循环引用/函数属性的场景,直接通过序列化+集合去重判断即可,还兼容对象键顺序不一致但内容相同的判定场景:

function hasDuplicateElements(arr) {
  const recordSet = new Set()
  for (const item of arr) {
    // 对对象的键做排序后再序列化,避免键顺序不同导致的判定误差
    const serialized = JSON.stringify(item, Object.keys(item).sort())
    if (recordSet.has(serialized)) {
      return true
    }
    recordSet.add(serialized)
  }
  return false
}

// 执行测试
console.log(hasDuplicateElements(myarray)) // 输出 true,符合预期

内容的提问来源于stack exchange,提问作者Shammas Pk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 12:10:33