js中数组对象去重的两种方法

讲解“js中数组对象去重的两种方法”的完整攻略。

1.方法1:使用Set

JavaScript中的Set是一种可以存储不重复值的集合。因此,可以通过Set来去重。

示例代码

const arr = [{id:1,name:'test'},{id:2,name:'test'},{id:1,name:'test'}]
const newArr = Array.from(new Set(arr.map(JSON.stringify))).map(JSON.parse)
console.log(newArr)

代码说明

首先使用map方法将数组中的对象转化为字符串。因为Set里默认只定义字符串,无法对对象去重。

然后使用Set方法,对其进行去重处理。

最后将Set转化为数组,再使用map方法将每项转化为对象。

2.方法2:使用reduce方法

使用reduce方法来对原数组进行去重处理,具体过程如下。

示例代码

const arr = [{id:1,name:'test'},{id:2,name:'test'},{id:1,name:'test'}]
const newArr = arr.reduce((result,current)=>{
   const len = result.length
   const isExist = result.some(item => item.id === current.id)
   if(!isExist){
     len === result.length && result.push(current)
   }
   return result
},[])
console.log(newArr)

代码说明

使用reduce方法遍历原数组,传入的第二个参数是数组初始值,这里为空数组[]。

在每次遍历时,判断result数组中是否已经存在该项,如果不存在则加入到result数组中。

最后返回去重后的新数组。

以上是两种去重方法的详细介绍。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js中数组对象去重的两种方法 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JavaScript字符串对象toLowerCase方法入门实例(用于把字母转换为小写)

    JavaScript字符串对象 toLowerCase() 方法入门实例 toLowerCase() 方法简介 JavaScript 中的字符串对象有一个 toLowerCase() 方法,用于把字符串中的字母都转换成小写字母。该方法是字符串类型的实例方法,意味着只能通过字符串对象调用该方法。 toLowerCase() 方法语法 string.toLowe…

    JavaScript 2023年5月28日
    00
  • window.js 主要包含了页面的一些操作

    简介 window.js 是一个在浏览器中运行的 JavaScript 脚本,它主要包含了页面的一些操作,如创建弹窗、改变网页地址以及在窗口中打印信息等。它作为浏览器的全局对象之一,常常被程序员用来操纵浏览器的标签页或者是浏览器自身。 页面操作 window.js 提供多种页面操作的方法,比如弹出对话框、打开新窗口、关闭当前窗口等。以下是两个简单的示例说明。…

    JavaScript 2023年6月10日
    00
  • javascript Number 与 Math对象的介绍

    针对“JavaScript Number 与 Math 对象的介绍”的完整攻略,以下为详细说明: JavaScript Number 介绍 JavaScript Number 对象用于在代码中处理数字。JavaScript 中的数字可以是,十进制,二进制,八进制,十六进制和科学计数法。 语法 var x = 123; // 十进制 var x = 0xff;…

    JavaScript 2023年5月28日
    00
  • js中实现字符串和数组的相互转化详解

    JS中实现字符串和数组的相互转化详解 在JS中,字符串和数组之间相互转化是比较常见的操作。通常会通过split和join完成转化。接下来将详细介绍这两个方法的使用技巧。 split方法 split方法可以将字符串按照指定的分隔符,转化成数组。 const str = "hello,world" const arr = str.split(…

    JavaScript 2023年5月27日
    00
  • JavaScript实现url参数转成json形式

    当我们使用JavaScript处理URL的参数时,有时候需要将URL的参数转换为JSON形式来进行处理。下面我将为您提供JavaScript实现URL参数转为JSON的完整攻略: 利用window.location.search获取URL参数部分; 将URL参数部分解析为键值对对象; 将对象转换为JSON格式。 下面是详细步骤的代码实现: 1. 利用wind…

    JavaScript 2023年5月27日
    00
  • JS原生数据双向绑定实现代码

    JS原生数据双向绑定是实现MVVM(Model-View-ViewModel)框架的重要基础,该框架可以将数据和页面进行解耦,提高开发效率和代码可维护性。下面是JS原生数据双向绑定的实现代码攻略: 1. 实现数据绑定 数据绑定是指将数据与页面元素建立关联,当数据发生改变时,页面元素也会自动更新。我们可以使用Object.defineProperty()方法实…

    JavaScript 2023年6月10日
    00
  • JavaScript全局函数使用简单说明

    下面是关于“JavaScript全局函数使用简单说明”的完整攻略。 什么是JavaScript全局函数 JavaScript全局函数指的是无需创建对象即可调用的函数。在JavaScript中,有一些函数不需要为其创建对象即可使用,这些函数就被称为 JavaScript全局函数。这些函数可以让我们更方便地使用许多常用操作。 JavaScript全局函数的简单说…

    JavaScript 2023年5月27日
    00
  • JS中把字符转成ASCII值的函数示例代码

    下面就来详细讲解一下JS中把字符转成ASCII值的函数示例代码的完整攻略。 什么是ASCII码 在进行进一步说明之前,先给大家介绍一下ASCII码(American Standard Code for Information Interchange),也就是美国信息交换标准代码,它是一种基于拉丁字母的一套电脑编码系统,也是目前广泛使用的字符编码标准,它定义了…

    JavaScript 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部