使用es6--对象数组的多种去重方式
在当今这个前端代码时代,前端需要对数据处理的逻辑需求越来越多,也越来越复杂了;所以我在项目种总结了一些对去重的几种方式提供给到大家参考!
之前我是对数组去重是这样的,当然现在也没有被淘汰,还是可以用的只是代码看着有点l
demo:
let array = ['amy','jack','tom','jackson','mark','jack'];
1:一维数组去重
beFore:
之前都是使用 indexOf, includes,
var newArr = []for (var i = 0; i < array .length; i++) {if (newArr.indexOf(array [i])===-1) {newArr.push(array [i])}
console.log(newArr)
Now: 使用es6:
var newArrStr = new Set(arr); //通过set集合去重;
//得到是字符串var newArr =Array.from(new Set(newArrStr));//数组
如何有多个数组只需将合并在去重即可
var mergeArr= arr1.concat(arr2);
2 .JSON数组去重;
demo
var obj1 = [{"id": 0, "name": "王嘉尔"},{"id": 1,"name": "段宜恩"},{"id": 0, "name": "林在范2"},];var obj2 = [{"id": 2, "name": "林在范"},{"id": 3,"name": "朴珍荣"},{ "id": 4,"name":"崔荣宰"},{ "id": 5,"name":"崔荣宰"},{ "id": 6,"name":"金有谦"}];
合并:
var mergeObj= obj1 .concat(obj2 );
beFore:
在之前没有使用es6是这样的:
var new_arr=[];
var json_arr=[];
for(var i=0; i<obj2.length; i++){console.log(new_arr.indexOf(obj2[i][attribute]));if(new_arr.indexOf(obj2[i]['id']) ==-1){ new_arr.push(obj2[i]['id']); json_arr.push(obj2[i]);} else{}
}console.log(json_arr);
你看看代码,十几行了;多L;咱们来看看 es6的强大;
Now: 使用es6:
2.1: filter&& forEach
//这种应用于添加数据业务需求
let newEs6Json =[];
obj2.forEach(item => {newEs6Json= obj1.filter(a => a.spu != item.spu) })console.log(newEs6Json );// [{"id": 0, "name": "王嘉尔"},{"id": 1,"name": "段宜恩"}]
2.2 reduce
// let obj3= obj1 .concat(obj2 );let new_obj ={};let peon =obj3.reduce((cur,next) => {obj[next.spu] ? "" : obj[next.spu] = true && cur.push(next);return cur;},[])console.log(peon);//[{"id": 0, "name": "王嘉尔"},{"id": 1,"name": "段宜恩"},{"id": 2, "name": "林在范"},{"id": 3,"name": "朴珍荣"},{ "id": 4,"name":"崔荣宰"},{ "id": 5,"name":"崔荣宰"},{ "id": 6,"name":"金有谦"}];
去重还是有很多种其他的方式的;我只能总结这么几个供大家参考了哈;
使用es6--对象数组的多种去重方式相关推荐
- android两个数组对象去重合并,JS 两个对象数组合并并去重
JS两个对象数组合并并去重 let jsonArr = [ { "ID": "", "NO": "1", "N ...
- es6对象数组按指定指定属性数组排序
let arr = let a = [ {name:"dema", id:'23-ba'}, {name:"xiya", id:'44-ba'}, {name: ...
- 关于js的多种去重方法
js的多种去重方式(包括ES5.ES6去重) 在JavaScript中,我们可以在很多场景下使用到去重功能,比如说在数组中,去掉数组中重复的数据,这是最常见的.以下是实现JavaScript数组去重的 ...
- es6 使用filter给对象数组去重
一般的去重方式 var arr = [1, 2, 2, 3, 4, 5, 5, 6, 7, 7,8,8,0,8,6,3,4,56,2]; var arr2 = arr.filter((x, index ...
- 使用ES6进行对象数组去重
之前使用new Set数组去重,只可以去重简单字符数组,或者数字数组等.Array.from(new Set(arr))即可.但是这种方案针对对象数组并不适用. 那么简易的使用ES6进行对象数组去重呢 ...
- 【ES6】最简单的对象数组去重的方法
对象数组去重的方法 // arr传数组名,attr传属性名 const uniqueArr=(arr,attr)=> {const res = new Map();return arr.filt ...
- JS遍历数组的多种方式
JS遍历数组的多种方式 1. 普通for循环 for (let i = 0; i < arr.length; i++){//code} 应用最为普遍的循环写法,性能好,可读性好. 2. 优化版f ...
- js 去重某个键值 数组对象_js数组去重(包括对象数组去重)
2019.08.02补: 对象数组建议直接循环然后使用工具库(lodash)的深比较,评论里也有指出,文章的方法有些取巧了 生产环境不要这么玩~. 方法一:利用ES6的Array.from()/扩展运 ...
- es6 提取数组对象一部分_ES6新特性你了解了多少呢?
ES6新特性 ES6的特性比较多,在 ES5 发布近 6 年(2009-11 至 2015-6)之后才将其标准化.两个发布版本之间时间跨度很大,所以ES6中的特性比较多. 在这里列举几个常用的: 类 ...
最新文章
- redis-sentinel主从复制高可用
- Visual Studio 2010 将网站直接发布到远程站点
- MyISAM 和InnoDB 的区别.(存储,索引, 事务, 锁)
- ArrayList类contains方法实现原理
- session存储的替代方法redis
- harbor搭建与使用
- 谷粒商城集群篇爬坑笔记--Gitee拉取项目报错、项目target文件不存在(部分项目不全)、SonarQube报错
- spring-session实现分布式集群session的共享(转)
- python量化投资实训班_python股票量化班 - 优量在线 - 学量化投资,到优量在线 - Powered By EduSoho...
- hadoop学习博客
- 事实表和维度表的定义
- 拉格朗日插值的优缺点_如何直观地理解拉格朗日插值法?
- 手写Vue个人组件库——fl-Badge
- 快速实现微信公众号支付功能
- Apple ASA归因技术支持
- 蓝牙4.0和3.0区别
- 群晖硬盘已损毁 Linux 修复,今天群晖存储空间损毁,起死回生
- Flowable入门系列文章47 - 电子邮件任务
- 4阶显式Runge-Kutta法解常微分方程的通用程序--python实现
- 天猫精灵X1自动恢复出厂设置解决方法