es6数组去重(连重复的对象也可以去掉)

2023-05-16

1,去除简单类型

//ES6中新增了Set数据结构,类似于数组,但是 它的成员都是唯一的 ,其构造函数可以接受一个数组作为参数,如:
let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3];
 let set = new Set(array);
 console.log(set);
 // => Set {1, 2, 3, 4, 5}

//ES6中Array新增了一个静态方法Array.from,可以把类似数组的对象转换为数组,如通过querySelectAll方法得到HTML DOM Node List,以及ES6中新增的Set和Map等可遍历对象,如: let set = new Set();
 set.add(1).add(2).add(3);
 let array = Array.from(set);
 console.log(array);
 // => [1, 2, 3]

       //于是,现在我们可以用一行代码实现数组去重了:
      let array = Array.from(new Set([1, 1, 1, 2, 3, 2, 4]));
      console.log(array);
      // => [1, 2, 3, 4]复制代码

2,去除引用类型

var arr = [{
    "name": "ZYTX",
    "age": "Y13xG_4wQnOWK1QwJLgg11d0pS4hewePU95UHtpMl3eE81uS74NC-6zu-Rtnw4Ix",
    "gender": "AAAAAA.doc"
}, {
    "name": "ZYTA",
    "age": "Y13xG_4wQnOWK1QwJLgg11d0pS4hewePU95UHtpMl3eE81uS74NC-6zu-Rtnw4Ix",
    "gender": "BBBBBB.doc"
}, {
    "name": "ZDTX",
    "age": "Y13xG_4wQnOWK1QwJLgg11d0pS4hewePU95UHtpMl3eE81uS74NC-6zu-Rtnw4Ix",
    "gender": "CCCCCC.doc"
}, {
    "name": "ZYTX",
    "age": "Y13xG_4wQnOWK1QwJLgg11d0pS4hewePU95UHtpMl3eE81uS74NC-6zu-Rtnw4Ix",
    "gender": "AAAAAA.doc"
}];
var hash = {};
arr = arr.reduce(function(item, next) {
    hash[next.name] ? '' : hash[next.name] = true && item.push(next);
    return item
}, [])
console.log(arr);复制代码


转载于:https://juejin.im/post/5b17a2c251882513e9059231

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

es6数组去重(连重复的对象也可以去掉) 的相关文章

  • 3分钟搞懂:JavaScript 和 ECMAScript

    JavaScript 和 ECMAScript ECMAScript 是 JavaScript 语言的国际标准 JavaScript 是 ECMAScript 的一种实现 Adobe ActionScript 和 JScript 同样实现了
  • js双层循环拿到二层循环的index值

    情景描述 多个房间 每个房间的人数不尽相同 后端获取的数据格式是根据房间走的 如 data roomNo 201 guestList name 张三 name 李四 roomNo 202 guestList name 张三三 name 李四
  • JavaScript中的promise

    概述 promise 承诺 是异步编程的一种解决方案 可以替代传统的解决方案 回调函数和事件 ES6统一了用法 并原生提供了Promise对象 promise是异步编程的一种解决方案 什么时候我们会来处理异步事件呢 一种很常见的场景就应该是
  • 对象常用的方法

    思维导图 对象中常用的方法 Object prototype 1 hasOwnProperty 方法会返回一个布尔值 指示对象自身属性中是否具有指定的属性 也就是 是否有指定的键 检测是否为私有属性 即使属性的值是 null 或 undef
  • git提交代码报 vue-cli-service lint found some errors. Please fix them and try committing again

    原因 问过度娘在提交代码的时候 它会在提交代码前运行做代码风格检查 如果代码不符合相应规则 则报错 解决 直接把pre commit文件删除 进入项目 git文件夹 hooks 删除 如何你的项目文件夹下没有找到 git文件夹 检查一下看看
  • bug: TypeError: Invalid attempt to spread non-iterable instance

    报错信息 分析 此类报错多为扩展运算符报错 问题代码 解决方式
  • 如何将类数组转换为真正的数组

    开发过程中 有很多时候获取到的是类似数组的对象 比如元素的集合 elementcollection nodeList 以及今天开发时发现classList也是类数组 有时我们需要类数组去调用数组的方法 怎么办 一 遍历类数组 依次将元素放入
  • Vue 报错:Duplicate keys detected

    Vue 报错 Duplicate keys detected object Object This may cause an update error 在vue 组件中使用 v for 并且加了key 值 如果key 值不唯一 就会出现这样
  • ES6知识点总结二:解构赋值

    3 解构赋值 ES6 允许按照一定模式 从数组和对象中提取值 对变量进行赋值 这被称为解构 数组 const courseArr es6 es7 es8 const a courseArr 0 const b courseArr 1 con
  • js数组不同类型元素去重

  • JS ES6 单链表2种插入尾部方式

    一种是类里加一个指向尾部最后一个元素指针 通过他添加一个元素到队列最后 一种是每次增一个元素都从头开始遍历直到最后一个 然后添加 打开出来有单链表结构是一样的 除了上面的 多了一个队尾指针 class Node 单个结点 data next
  • Object.defineProperty

    Object defineProperty Object defineProperty obj prop descriptor obj 要在其上定义属性的对象 prop 要定义或修改的属性的名称 descriptor 将被定义或修改的属性描
  • ES6中Null判断运算符(??)正确打开方式-

    读取对象属性的时候 如果某个属性的值是null或者undefined 有时候需要为它们指定默认值 常见的作法是通过 运算符指定默认值 const headerText response settings headerText Hello w
  • 前端常用js插件

    浏览目录 包管理器 加载器 打包工具 测试框架 框架 断言 覆盖率 运行器 QA 工具 MVC 框架和库 基于 Node 的 CMS 框架 模板引擎 Flux 数据可视化 时间轴 编辑器 文件 函数式编程 响应式编程 数据结构 日期 字符串
  • ES6 Promise详解

    优质资源分享 学习路线指引 点击解锁 知识定位 人群定位 Python实战微信订餐小程序 进阶级 本课程是python flask 微信小程序的完美结合 从项目搭建到腾讯云部署上线 打造一个全栈订餐系统 Python量化交易实战 入门级 手
  • 【按照年月去统计信息并分类展示】

    1 前言 需求是需要将历史订单按照年月分类展示 并展示汇总值 由于后端返回的是数组的数据 并没有将数据做好统计分类 出于对自己的自信以及不想给别人添麻烦的信息 然后自己写了一下处理的方法 然后放上最后的效果图吧 2 代码实现 按照月份统计每
  • Ant Design Pro从零到一(认识AntD)

    废话 在我们第一次接触AntD的时候 会遇到两个东西 一个是Ant Design 另一个是Ant Design Pro 他们的官网分别是 Ant Design 一套企业级 UI 设计语言和 React 组件库 Ant Design Pro
  • 前端基础(三)- ES7~ES12

    为了方便记忆和称呼 ES2015之后的新知识点我们都统称ES6语法 就没必要去划分得那么细 ES7 2016 Array prototype includes includes方法可以判断一个数组是否包含某个指定的值 如果存在返回true
  • ES6 面试题 | 14.精选 ES6 面试题

    前端开发工程师 主业 技术博主 副业 已过CET6 阿珊和她的猫 CSDN个人主页 牛客高级专题作者 在牛客打造高质量专栏 前端面试必备 蓝桥云课签约作者 已在蓝桥云课上架的前后端实战课程 Vue js 和 Egg js 开发企业级健康管理
  • VUE实践优化:轮询机制与代码结构升级

    前言 我们之前探讨过 对于包含处理状态的表格数据 我们可以通过轮询的方式进行处理 轮询更新进度条 JavaScript中的定时器和异步编程技巧 然而 当我们离开页面时 定时器仍会继续触发请求 这会造成资源的浪费 因为返回的数据并没有被渲染出

随机推荐

  • @GetMapping和@PostMapping接收参数的格式

    一 1 使用 64 Controller 注解 xff0c 在对应的方法上 xff0c 视图解析器可以解析return 的jsp html页面 xff0c 并且跳转到相应页面 若返回json等内容到页面 xff0c 则需要加 64 Resp
  • Python 3 教程二:文件,目录和路径

    1 遍历文件夹和文件 import os import os path os os path里包含大多数文件访问的函数 所以要先引入它们 请按照你的实际情况修改这个路径 rootdir 61 34 d download 34 for par
  • [BZOJ1925]地精部落

    地精部落 题目描述 传说很久以前 xff0c 大地上居住着一种神秘的生物 xff1a 地精 地精喜欢住在连绵不绝的山脉中 具体地说 xff0c 一座长度为N的山脉H可分为从左到右的N段 xff0c 每段有一个独一无二的高度Hi xff0c
  • 【C#学习笔记】类构造函数使用

    using System namespace ConsoleApplication class stu private string name private int age public stu name 61 34 34 age 61
  • VS2010(VS2008)下安装配置OpenCV

    研究生课题做嵌入式图像处理方向 xff0c 所以主要涉及的知识就是嵌入式Linux 43 OpenCV 43 QT xff0c 主要OpenCV和QT都是跨平台的 xff0c 而且充分利用好的话再后期的算法设计和功能扩展上就方便很多 只是之
  • iOS开发基础篇--CAShapeLayer的strokeStart和strokeEnd属性

    一 案例演示 最近有一个小需求 xff0c 就是要做一个圆形进度条 xff0c 大概样子如下 xff1a 1 gif 在不知道有CAShapeLayer的strokeStart和strokeEnd属性的时候 xff0c 我采取的方法就是实时
  • 排序算法——选择排序法(Select Sorting)

    选择排序 xff08 Select Sorting xff09 基本介绍 选择排序也属于内部排序法 xff0c 是从预排序的数据中 xff0c 按指定的规则选出某一元素 xff0c 再依规定交换位置后达到排序的目的 选择排序思想 选择排序
  • 面试时,你被问到过 TCP/IP 协议吗?

    前言 精通 TCP IP xff0c 熟练使用 Socket 进行网路编程 看到这句话 xff0c 有没有感到很熟悉呀 xff1f 相信很多人在投递简历的时候都看到过这条要求 xff0c 很多人会觉得我们在实际开发中一般用不到这些知识 xf
  • Storyboard使用TableView进行页面跳转传值

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 场景 StoryBoard中 A 界面 TableView B界面 明细页面 A amp B通过Cell的Section Action事件进行页面跳转 Controller
  • jsp九大内置对象和四种属性范围介绍

    一般对象需要实例化才可以调用 xff0c 而JSP的内置对象是不用实例化就可以直接调用的对象 总共有9个 xff0c 对应如下表 xff1a 序号 对象 类型 1 pageContext javax servlet jsp PageCont
  • Android Lint扫描规则说明(一)

    主要内容 对Android Studio支持的六类Android Lint规则 xff0c 本文主要对Accessibility 和 Internationalization 两中类型所包含的14个项的说明 xff0c 主要内容都是文档翻译
  • openstack 构建availability-zone

    首先介绍一下的的环境 xff1a manager节点的服务 xff1a keystone xff0c mysql xff0c nova所有组件 xff0c glance xff0c quantum server xff0c nova com
  • ubuntu/debian终端不支持中文解决办法

    为什么80 的码农都做不了架构师 xff1f gt gt gt aptitude install locales dpkg reconfigure locales 配置编码进入选择 xff1a 空格键是选择 xff0c 不是ENTER xf
  • PHP十进制数字转换为26进制字母函数

    很久以前为导出EXCEL写过一个字母累加的函数 xff0c 今天追加一个数字转为字母的 也就是十进制转26进制 1234567891011121314151617 for i 61 1 i lt 200 i 43 43 echo i 39
  • SVG.js 元素操作整理(一)

    一 属性操作Attributes var draw 61 SVG 39 svg1 39 size 300 300 attr 属性操作 设置属性的值 var rect 61 draw rect 100 100 rect attr 39 x 3
  • JS 比较两个数组是否相等 是否拥有相同元素

    Javascript怎么比较两个数组是否相同 xff1f JS怎么比较两个数组是否有完全相同的元素 xff1f Javascript不能直接用 61 61 或者 61 61 61 来判断两个数组是否相等 xff0c 无论是相等还是全等都不行
  • Win11 安卓子系统安装过程

    1 环境要求 xff1a 系统为windows 11版本为22000 xx或者以上版本 xff1b 建议系统内存为16G或者以上 xff1b 2 安装windows虚拟化支持 功能 进入设置 应用 可选功能 更多 Windows 功能 xf
  • java 取小数点后两位 不四舍五入,怎么做

    java 取小数点后两位 不四舍五入 怎么做 正常版 正常版 import java text DecimalFormat import java math RoundingMode DecimalFormat formater 61 ne
  • 华为硬件研发笔试题

    华为硬件笔试题1 一 选择 13个题目 没有全部抄下来 涉及的课程有电路 模拟电路 数字电路 信号与系统 微机原理 网络 数字信号处理 1 微分电路 2 CISC RISC 3 数据链路层 二 填空 10个题目 没有全部抄下来 涉及的课程有
  • es6数组去重(连重复的对象也可以去掉)

    1 xff0c 去除简单类型 ES6中新增了Set数据结构 xff0c 类似于数组 xff0c 但是 它的成员都是唯一的 xff0c 其构造函数可以接受一个数组作为参数 xff0c 如 xff1a span class hljs built