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日

相关文章

  • js获取Get值的方法

    下面是关于“JS获取Get值的方法”的完整攻略: 什么是Get请求 在Web开发中,我们常常需要通过URL传输数据。传输的方式有两种,一种是GET请求,另一种是POST请求。其中,GET请求通常用于获取数据,POST请求则通常用于提交数据。在GET请求中,数据是通过URL传递的,因此可以通过解析URL中的参数来获取数据。 JS获取Get值的方法 在JavaS…

    JavaScript 2023年5月28日
    00
  • JS数组降维的几种方法详解

    JS数组降维是指将多维数组转换为一维数组。本文将详细讲解JS数组降维的几种方法,包括使用reduce()方法、ES6中的展开运算符和concat()方法等。 一、使用reduce()方法 reduce()方法接收两个参数,第一个参数是一个回调函数,第二个参数是累加器的初始值。回调函数接收两个参数,第一个参数是累加器的值,第二个参数是当前元素的值。在回调函数中…

    JavaScript 2023年5月27日
    00
  • 结合 ES6 类编写JavaScript 创建型模式

    结合 ES6 类编写JavaScript 创建型模式的步骤: 定义一个类,这个类代表要创建的对象类型。 在类中定义一个静态方法,这个静态方法将使用类的构造函数来创建一个对象。 定义一个方法,用于对类的实例进行初始化。这个方法通常是一个构造函数或者一个工厂方法。 对类进行扩展,以便可以创建新的对象类型。 实例化新的对象。 下面简单介绍两种在 ES6 中创建 J…

    JavaScript 2023年6月10日
    00
  • js闭包的9个使用场景

    下面是详细讲解“js闭包的9个使用场景”的完整攻略。 什么是JavaScript闭包? JavaScript闭包是一个函数和定义该函数的环境的组合。闭包让你可以在一个内部函数中访问到其外部函数的作用域。具体来说,就是内部函数能够“记住”并访问外部函数的变量,即使外部函数已经返回了。 9个JavaScript闭包的使用场景 1. 模块化开发 闭包可以帮助我们实…

    JavaScript 2023年6月10日
    00
  • Document.location.href和.replace的区别示例介绍

    Document.location.href和.replace是JavaScript中经常用到的两个方法,它们的作用都是跳转页面,但其实存在着一些区别。接下来我将详细讲解这两个方法的区别,并且分别给出两个示例来说明。 Document.location.href和.replace的区别 Document.location.href 使用Document.lo…

    JavaScript 2023年6月11日
    00
  • JavaScript动态创建form表单并提交的实现方法

    这里是关于JavaScript动态创建和提交表单的完整攻略。 1. 动态创建表单 在JavaScript中,动态创建表单包括以下三个步骤: 1.1 创建form元素 使用document.createElement方法创建一个新的form元素,代码示例: var form = document.createElement(‘form’); form.setA…

    JavaScript 2023年6月10日
    00
  • Cordova(ionic)项目实现双击返回键退出应用

    要实现双击返回键退出应用,需要在 Cordova (或 Ionic)应用中添加相关代码。下面是实现过程的完整攻略。 步骤一:安装插件 在 Cordova 应用中,需要使用 cordova-plugin-exitapp 插件来实现双击返回键退出应用的功能。可以使用以下命令安装该插件: cordova plugin add cordova-plugin-exit…

    JavaScript 2023年6月10日
    00
  • JavaScript 获取当前时间戳的代码

    获取当前时间戳是指获取当前时间与某一特定时间(一般为1970年1月1日00:00:00 UTC)之间的毫秒数。JavaScript提供了多种方法来获取当前时间戳。 Date对象的getTime()方法 在JavaScript中,Date对象提供了getTime()方法来获取当前时间戳。该方法返回自1970年1月1日00:00:00 UTC以来的毫秒数。以下是…

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