首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何从JS数组中去掉重复的子对象数组?

从JS数组中去掉重复的子对象数组可以通过以下步骤实现:

  1. 首先,遍历原始数组,将每个子对象转换为字符串形式,以便比较。
  2. 创建一个空对象或集合,用于存储已经出现过的子对象字符串。
  3. 创建一个新的数组,用于存储去重后的子对象数组。
  4. 遍历原始数组,对于每个子对象,将其转换为字符串形式,并检查是否已经存在于存储对象中。
  5. 如果子对象字符串不存在于存储对象中,则将其添加到存储对象中,并将原始子对象添加到新数组中。
  6. 最后,返回新数组作为结果,即为去重后的子对象数组。

以下是一个示例代码:

代码语言:txt
复制
function removeDuplicateSubArrays(arr) {
  const seen = {}; // 存储已经出现过的子对象字符串
  const result = []; // 存储去重后的子对象数组

  for (let i = 0; i < arr.length; i++) {
    const subArrayString = JSON.stringify(arr[i]); // 将子对象转换为字符串形式

    if (!seen[subArrayString]) {
      seen[subArrayString] = true; // 将子对象字符串添加到存储对象中
      result.push(arr[i]); // 将原始子对象添加到新数组中
    }
  }

  return result;
}

// 示例用法
const originalArray = [
  [{ id: 1 }, { id: 2 }],
  [{ id: 1 }, { id: 2 }],
  [{ id: 3 }, { id: 4 }],
  [{ id: 1 }, { id: 2 }],
];

const uniqueArray = removeDuplicateSubArrays(originalArray);
console.log(uniqueArray);

这段代码将输出去重后的子对象数组:

代码语言:txt
复制
[
  [{ id: 1 }, { id: 2 }],
  [{ id: 3 }, { id: 4 }]
]

这种方法通过将子对象转换为字符串形式,并利用对象的键的唯一性来去重。请注意,这种方法对于包含复杂对象或嵌套数组的情况可能不适用,因为JSON.stringify()方法可能无法正确处理这些情况。在实际应用中,可能需要根据具体情况进行适当的修改。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • java基础学习_集合类01_对象数组、集合Collection接口、集合List接口_day15总结

    ============================================================================= ============================================================================= 涉及到的知识点有: 1:对象数组的概述和案例(掌握)   (1)对象数组的概述   (2)对象数组的案例 2:集合(Collection接口)(掌握)   (1)集合的由来?   (2)集合和数组的区别?   (3)集合的继承体系结构   (4)Collection接口的概述   (5)Collection接口的成员方法(注意:默认方法前有public abstract修饰)   (6)Collection集合的遍历   (7)迭代器   (8)Collection集合的案例(遍历方式:迭代器方式)(要求:用记事本默写)     A:存储字符串并遍历     B:存储自定义对象并遍历 3:集合(List接口)(掌握)   (1)List是Collection的子接口   (2)List的特有功能(注意:默认方法前有public abstract修饰)   (3)List集合的特有遍历功能   (4)列表迭代器的特有功能(了解)   (5)ConcurrentModificationException 并发修改异常   (6)常见的数据结构以及其优缺点   (7)List的子类特点(面试题)   (8)List集合的案例(遍历方式 迭代器和普通for循环) ============================================================================= ============================================================================= 1:对象数组的概述和案例(掌握) (1)对象数组的概述     数组既可以存储基本数据类型,也可以存储引用类型。它存储引用类型的时候的数组就叫对象数组。 (2)对象数组的案例     我有5个学生,请把这个5个学生的信息存储到数组中,并遍历学生数组,获取得到每一个学生的信息。

    01

    Jquery入门

    jquery [] jquery概念 jquery是JS的框架。 JS的函数库。 【】BOM BOM:Browser Object Model BOM对象: 1.window:BOM根对象 2.window.navigator 浏览器对象 3.window.location : URL地址对象 4.window.document: 文档对象。 5.window.history 历史对象 【】DOM DOM根对象:window.document 表示浏览器载入的文档在内存中模型。 DOM模式的格式:树。 每个标记表示一个对象,在树中是一个节点。 1. JS定位一个节点方法 (1)根据ID定位:var div=document.getElementById("id"); 返回一个对象 (2)根据标记名定义:var div=document.getElemenetByTagName("div");       返回对象的数组。 (3) 根据CSS选择器选择对象:       var ob=document.querySelector("css选择器");返回满足选择器的第一个对象       例子:      <input type="text" name="userid" id="userid" />      var userid=document.querySelector("input[name='userid']");      var userid=document.querySelector("#userid");      var userid=document.querySelector("input"); (4) 返回所有的选择器选择的对象:返回对象数组。 document.querySelectorAll("CSS选择器") 【】DOM操作节点对象 1.读/写节点的内容    

       var div01=document.querySelector("#maincontent");    div01.innerHTML="你好";    div01.innerText="你好";    var info=div01.innerHTML;    var info=div01.innerText; 2.读写FORM表单元素的值     <input type="text" name="userid" id="userid" />     var userid=document.querySelector("#userid");     userid.value="001";     var v=userid.value; 3. 读写节点的样式      
    AAA
           var div01=document.querySelector("#maincontent");      div01.style.backgroundColor="blue";      var color= div01.style.backgroundColor; 4. 设置节点对象的事件      var div01=document.querySelector("#maincontent");      div01.onclick=function(event){          alert(div01.innerHTML);      }; 5.读写对象的属性    
    测试    var a=document.querySelector("#link01");    var href=a.href;    a.href="docyument/add.mvc"; 【】jquery引入 <script src="js/jquery.js"></script> 【】jQuery语法: 1.操作DOM节点:    $(选择器).函数(参数); 2.通用的函数,不针对DOM节点    $.函数(参数);    $.get, $.post, $.getJSON, $.each 【】jquery的节点选择器:使用CSS选择 1.ID选择器    $("a#link01).on("click",function(){}); 2.class选择器    $(".link).on("click",function()

    02
    领券