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

yizhihongxing

讲解“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日

相关文章

  • Bootstrap滚动监听(Scrollspy)插件详解

    Bootstrap滚动监听(Scrollspy)插件详解 Bootstrap的Scrollspy插件是一款可以自动更新导航栏的插件,可以使导航栏和页面滚动保持同步。本文将详细讲解Scrollspy插件的使用方法。 安装 在使用Bootstrap的Scrollspy插件之前,需要先引入Bootstrap的CSS和JS文件。 <!– 引入Bootstra…

    JavaScript 2023年5月27日
    00
  • Javascript实现html转pdf高清版(提高分辨率)

    让我来讲解一下Javascript实现html转pdf高清版的完整攻略。 1. 准备工作 在进行Javascript实现html转pdf高清版之前,需要准备以下工作: 安装Node.js环境,可以从Node.js官网下载安装; 安装相关的npm包,例如puppeteer和sharp,可以在命令行中执行以下命令进行安装: npm install puppete…

    JavaScript 2023年5月27日
    00
  • 使用php操作xml教程

    接下来我将为您详细讲解如何使用PHP操作XML文档的完整攻略。 1. 安装PHP SimpleXML模块 在使用PHP操作XML文档之前,我们需要确保已经安装了PHP SimpleXML模块。可以通过执行以下代码确认是否已安装: <?php phpinfo(); ?> 查询结果中有SimpleXML模块则表示已安装,否则需要手动安装该模块。 2.…

    JavaScript 2023年6月11日
    00
  • Javascript Object对象类型使用详解

    Javascript Object对象类型使用详解 在 Javascript 中,Object 对象类型是最重要的类型之一。它是一种可以容纳各种数据类型的复合类型,用于表示对象实体或无序集合。在本文中,我们将详细讲解 Object 对象类型的各个方面,包括创建、读写属性、遍历、方法和继承等。 创建 Object 对象 使用 Object 构造函数或对象字面量…

    JavaScript 2023年5月27日
    00
  • JavaScript语法 JSON序列化之stringify实例详解

    JavaScript语法 JSON序列化之stringify实例详解 简介 JSON(JavaScript Object Notation)是一种轻量级数据交换格式,具有数据传输简单、易于阅读和编写的特点。在JavaScript中,我们可以通过JSON对象提供的serialize(序列化)和deserialize(反序列化)函数,轻松对JSON数据进行操作,…

    JavaScript 2023年5月27日
    00
  • JS实战面向对象贪吃蛇小游戏示例

    以下是针对“JS实战面向对象贪吃蛇小游戏示例”的完整攻略: 概述 该示例是一个采用JavaScript编写的经典贪吃蛇小游戏,使用面向对象的方式实现游戏逻辑。游戏包括蛇的移动、食物的生成、得分计算等功能。 代码结构 示例的核心代码包含在一个名为snake.js的文件中。该文件包含一个Snake函数,这个函数返回一个包含贪吃蛇游戏逻辑的对象。在Snake函数中…

    JavaScript 2023年6月10日
    00
  • JS 判断代码全收集

    以下是详细讲解“JS 判断代码全收集”的完整攻略,包含了两条示例供您参考。 什么是JS判断代码全收集? 在Web开发中,很多时候需要获取并处理用户输入的数据,从而完成各种功能。但是,有些用户可能会利用特定的手段来绕过你的输入验证,注入恶意代码,从而对你的网站造成威胁。为了防止这样的情况发生,我们需要对用户输入的数据进行全收集。 如何判断代码全收集? 我们可以…

    JavaScript 2023年5月19日
    00
  • JS判断数组那点事

    JS判断数组那点事:完整攻略 在JavaScript中,我们可以使用各种方式来判断一个变量是否为数组。本攻略将介绍一些常用的方法以及它们的优缺点。 1. 使用typeof运算符 我们可以使用typeof运算符来获取变量的数据类型。对于数组而言,typeof将返回”object”。因此可以使用typeof判断传入的参数是否为”object”,如果是则继续判断是…

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