js数组去重、对象数组去重(ES6语法推荐)
/**
* 数组去重
* @param {*} arr 接收的原数组
* @param {*} key 如果是对象数组[{id: 1}, {id: 2}, {id: 3}],则需要以什么key作为重复的标准,普通数组[1,2,3,2]不需要
*/
export function arrUnique(arr, key) {
let returnArr = [];
if (key) {
// 对象数组去重
const obj = {};
returnArr = arr.reduce((cur, next) => {
obj[next[key]] ? '' : obj[next[key]] = true && cur.push(next);
return cur;
}, []);
return returnArr;
}
// 普通数组去重
returnArr = arr.reduce((cur, next) => {
!cur.includes(next) && cur.push(next);
return cur;
}, []);
return returnArr;
}
js数组去重、对象数组去重(ES6语法推荐)的更多相关文章
- JS 两个对象数组合并并去重
JS两个对象数组合并并去重 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- js 三维数组转对象数组 二维数组转对象数组
1. 三维数组转对象数组 输出: 代码如下: let dataArr = [ [ [109.654541015625, 29.34387539941801], [110.467529296875, ...
- (转)Silverlight调用的JS方法返回对象数组的处理方法
最近在做Silverlight应用,需要用Silverlight调用页面中Javascript方法.这 个JS方法返回一个对象数组给Silverlight.对于这个对象数组怎么在Silverlight ...
- JS中的对象数组
<html> <head> <title>对象数组的字符串表示</title> <script type="text/javascrip ...
- vue的v-for循环普通数组、对象数组、对象、数字
如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8& ...
- java语言一维数组,对象数组
/** * 对象数组的使用 */package com.test5; import java.io.BufferedReader;import java.io.InputStream;import j ...
- AngularJS初始化普通数组和对象数组
普通数组: ng-init="persons=['john','jack']" 对象数组: ng-init="persons=[{name:'john',age:20}, ...
- java 二维数组和对象数组
1.二维数组:二维数组就是存储一维数组(内存地址/引用)的数组 2.二维数组的初始化 1) int intA[][]={{1,2},{2,3},{3,4,5}}; 2) int [][] intB=n ...
- Java基础系列 - 数组、二维数组、对象数组
package com.test2; public class demo2 { public static void main(String[] args) { /** * 一维数组使用 */ //数 ...
- C++——二维数组和对象数组
6.3 二维数组的声明和引用 声明:数据类型 标识符[常量表达式1][常量表达式2]:int a[3][4]; 表示a为整型二维数组,其中第一维有3个下标(0~2),第二维有4个下标(0~3),数组元 ...
随机推荐
- 「Log」2023.8.17 小记
序幕 早上到校先摆,然后开调代码. 大分块对拍调调调. 学长开始讲平衡树. 平衡树平衡树平衡树! 学完了,点午饭吃午饭. 学主席树. 主席树主席树主席树! 学完了点晚饭吃完饭. 用 chatGPT 写 ...
- SpringBoot发布webservice服务并调用(hutool yyds)
作者:故事我忘了¢个人微信公众号:程序猿的月光宝盒 目录 前言 开干 1.涉及技术点 2.整体项目结构 3.Provider 发布Ws服务端 首先,肯定要修改pom文件 依赖加上 3.0 因为用对象的 ...
- Permutation Counting
\(n\) 的范围很小,考虑动态规划. \(f_{i,j}\) 在前 \(i\) 个数有 \(j\) 个 \(<\) 的个数. 若 \(\texttt {a<b<c<d}\), ...
- k8s集群根据进程PID获取Pod名称
简单说明 在实际的应用场景中,我们如果看到某个进程资源或服务异常,需要根据这个进程排查到底是哪个服务的Pod,这里我们介绍一种根据PID快速寻找Pod名称的方法. 实际操作 查看进程PID 这里我们以 ...
- Mac Book Pro 开机失败记录
今天周一一大早来到公司,打开电脑发现,屏幕上一直出现Apple 的图标,进入不了系统,过了一会系统自动重启,还是停留在Apple 图标的界面上(虽然图标很好看,但是还是要进去系统的呀).自己开始有那么 ...
- 详解 Flink Catalog 在 ChunJun 中的实践之路
我们知道 Flink 有Table(表).View(视图).Function(函数/算子).Database(数据库)的概念,相对于这些耳熟能详的概念,Flink 里还有一个 Catalog(目录) ...
- C++的发展与抽象
在此之前先说一些概念: 计算机最重要的两个元件:CPU(控制器.运算器).存储设备(寄存器.缓存.内存.硬盘). 算法需要实现,所以有了CPU,CPU需要运行算法,所以有了指令集.程序段,高级语言编写 ...
- 群晖Synology NAS即DSM系统7.2去掉@eaDir文件夹并禁止其生成
原文永久链接:https://forum.piwind.com/d/28-qun-hui-synology-nasji-dsmxi-tong-72qu-diao-at-eadirwen-jian-ji ...
- 聊聊 RocketMQ 4.X 知识体系
本文将系统解析 RocketMQ 4.X 的核心知识体系,希望能为读者带来有价值的思考和启发. 1 整体架构 RocketMQ 4.X 架构中包含四种角色 : 1.NameServer 名字服务是是一 ...
- 前端开发系列076-JQuery篇之框架源码解读[插件]
这篇文章将主要介绍jQuery框架的插件机制,包括但不限于jQuery.extend和jQuery.fn.extend方法的设计和使用,JavaScript体系中的常用概念以及jQuery插件的使用等 ...