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数组去重(连重复的对象也可以去掉) 的相关文章

  • VUE+vue-print-nb,vue打印我踩过的坑

    这几天写了一个需求 要求打印条形码 先来张要打印出来的效果图吧 效果图大概长这样子 图是我随便找的 二维码扫出来是啥我也不知道 哈哈 写这个需求的时候踩了太多的坑了 在此记录下辛酸史 vue print nb基本用法 这个插件用法很简单 安
  • ES6知识点总结——学习网站及环境搭建

    1 ES6学习网站 ES6官网 https 262 ecma international org 6 0 阮一峰ES6学习电子书 https es6 ruanyifeng com docs let W3Cschool ES6中文教程 htt
  • 小程序web-view 跳转到h5 监听返回按钮

    1 跳转到h5之后 先给页面堆栈 然后就可以监听到返回事件了
  • SyntaxError: Cannot use import statement outside a module

    SyntaxError Cannot use import statement outside a module 错误展示 问题 使用 vs code 调试js 代码 出现 SyntaxError Cannot use import sta
  • 【Javascript】数组拼接的两种方法

    数组拼接的两种方法 1 改变原数组 1 push 扩展运算法 1 不改变原数组 1 concat 2 扩展运算符 1 改变原数组 1 push 扩展运算法 利用push搭配扩展运算符的方法 arr2经过扩展运算符 由 3 4 5 变成3 4
  • ES6知识点总结二:解构赋值

    3 解构赋值 ES6 允许按照一定模式 从数组和对象中提取值 对变量进行赋值 这被称为解构 数组 const courseArr es6 es7 es8 const a courseArr 0 const b courseArr 1 con
  • 从零开发一套完整的react项目开发环境

    不管是工作需要还是面试加分 除了Vue相关技术以外 React技术栈也已经成为了前端开发工程师必备的技术点 接下来 我将从零开发一套完整的React全家桶项目开发环境 提供给需要的同行小伙伴观看也方便自己以后复习 篇幅很长 请需要的小伙伴耐
  • js数组不同类型元素去重

  • ES6非空判断

    es6 Null传导运算符 const firstName message body user firstName default 运算符相当于一种短路机制 只要不满足条件 就不再往下执行 Null 判断运算符 属性的值为null unde
  • 第一节:数据类型——null,undefined和布尔值

    JavaScript 的数据类型 共有六种 ES6 又新增了第七种 Symbol 类型的值 数值 number 整数和小数 比如1和3 14 字符串 string 文本 比如Hello World 布尔值 boolean 表示真伪的两个特殊
  • Object.entries()方法使用详解

    一 概述 对象的数据处理方法 我们熟知的有很多 比如Object keys Object values for in等 本文将其与其它常见使用方法进行对比 详细解析其特性 二 对比 for in Object entries 方法的优势 1
  • ES6 Promise详解

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

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

    简要介绍 箭头函数中的this 指向与一般function定义的函数不同 比较容易绕晕 箭头函数this的定义 箭头函数中的this是在定义函数的时候绑定 而不是在执行函数的时候绑定 1 何为定义时绑定 我们来看下面这个例子 1 var x
  • 3分钟玩转:ES6 模块化

    ES6 模块 ES6 使用 export 和 import 导出和导入模块 导出模块 一个模块就是一个独立的 JS 文件 该文件内的变量外部无法获取 若希望能让外部获取模块内的变量 则要用 export 关键字暴露变量 分别暴露 命名行内导
  • 前端基础(三)- ES7~ES12

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

    十六进制颜色 方法1 const randomHex gt Math floor Math random 0xffffff toString 16 padEnd 6 0 console log randomHex 十六进制颜色 方法2 co
  • ES6 面试题 | 13.精选 ES6 面试题

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

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

    在解构赋值语法中 冒号 的作用是为提取的字段指定一个新的变量名 让我们以示例 const billCode code version route query 来说明 billCode code version 表示从 route query

随机推荐

  • @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