博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数组对象去重
阅读量:6814 次
发布时间:2019-06-26

本文共 2045 字,大约阅读时间需要 6 分钟。

数组对象去重

  • 方法1:利用对象访问属性的方法,判断对象中是否存在key、value
const arr = [    {        key: "1",        value: "西瓜"    },    {        key: "1",        value: "苹果"    },    {        key: "3",        value: "桃子"    }];const list = [    {        key: "1",        value: "哈密瓜"    },    {        key: "2",        value: "黄瓜"    },    {        key: "3",        value: "黄瓜"    }];function  unique (obj1,obj2,targe) {    const data = []; // 创建一个新数组    const obj = {}; // 创建一个新对象    const list = obj1.concat(obj2);    for (let i=0; i< list.length; i++) {        if (!obj[list[i][targe]]) { // 判断对象不存在key、value            data.push(list[i]);            obj[list[i][targe]] = true;        }    }    return data;}        console.log( unique(arr, list, "value"));复制代码
  • 方法2:利用reduce方法遍历数组,reduce第一个参数是遍历需要执行的函数,第二个参数是item的初始值
const arr = [    {        key: "1",        value: "西瓜"    },    {        key: "1",        value: "苹果"    },    {        key: "3",        value: "桃子"    }];const list = [    {        key: "1",        value: "哈密瓜"    },    {        key: "2",        value: "黄瓜"    },    {        key: "3",        value: "黄瓜"    }];function  unique (obj1,obj2,targe) {    const obj = {}; // 创建一个新对象    const list = obj1.concat(obj2);    const data = list.reduce(function(item,next) {        if (!obj[next[targe]]) {            item.push(next)            obj[next[targe]] = true;        }        return item;    }, []);    return data;}        console.log(unique(arr, list, "value"));复制代码
  • 方法3:利用Map的特性去重
const arr = [    {        key: "1",        value: "西瓜"    },    {        key: "1",        value: "苹果"    },    {        key: "3",        value: "桃子"    }];const list = [    {        key: "1",        value: "哈密瓜"    },    {        key: "2",        value: "黄瓜"    },    {        key: "3",        value: "黄瓜"    }]; function unique(obj1,obj2,targe) {    const data = [...obj1, ...obj2];    const res = new Map();    return data.filter((value) => {       return !res.has(value[targe]) && res.set(value[targe], 1)    } )}          console.log(unique(arr, list, "value"));复制代码

转载地址:http://yakzl.baihongyu.com/

你可能感兴趣的文章
PHPExcel 读取导入 excel2003,2007各个版本整理
查看>>
javascript 原生态ajax
查看>>
最大钻石问题
查看>>
LVM及其使用
查看>>
Java开发工具IntelliJ IDEA定义语言和文件类型详细说明
查看>>
理解POST和PUT的区别,顺便提下RESTful
查看>>
笔记本电脑怎么设置wifi热点共享
查看>>
LM3S6911 锁片 解锁
查看>>
存储管理的一张表
查看>>
学习 AngularJS
查看>>
用Cacls命令修改文件访问控制权限
查看>>
FlexPod上安装vSphere 5.5配置中的排错(1)
查看>>
分布式消息队列中间件系列研究之阿堂教程(高级篇)
查看>>
rsync安装脚本
查看>>
我的友情链接
查看>>
Exchange 2010系列部署报告-域控制器部署
查看>>
Windows Server TP3之NanoServer
查看>>
squid做代理服务器实例配置
查看>>
自用PHP编码规范
查看>>
分解质因数
查看>>