数组去重的5种方法(两个数组去重合并)

1、循环遍历去重定义一个空数组,循环原数组,检测每一项是否在将新数组中,如果不在就将该项存储到新数组中。再循环新数组,将每一项还原为原来的类型,存入新的数组中,所得的新数组就是去重后得到数组。constarr=[{a:1,b:1}

1、循环遍历去重

定义一个空数组,循环原数组,检测每一项是否在将新数组中,如果不在就将该项存储到新数组中。再循环新数组,将每一项还原为原来的类型,存入新的数组中,所得的新数组就是去重后得到数组。

const arr = [{ a: 1, b: 1 },true,0,1,null,undefined,true,false,1,{ a: 1, b: 1 },undefined,null,false,0],
res1 = [];
arr.forEach((item) => {
const str = JSON.stringify(item) + \"\";
if (res1.indexOf(str) === -1) {
res1.push(str);
}
});
const res2 = res1.map((item) => {
return item === undefined + \"\" ? undefined : JSON.parse(item);
});
console.log(res2); // [{a: 1, b: 1},true,0,1,null,undefined,false]

2、利用对象的属性名的不重复型

定义一个新的空对象,循环原数组,将每一项转换为字符串的值作为对象的属性名,每一项作为对象的属性值。然后遍历对象,将对象属性名对应的属性值都放入一个新建的数组中。所得的新数组就是去重后得到数组。

const arr = [{ a: 1, b: 1 },true,0,1,null,undefined,true,false,1,{ a: 1, b: 1 },undefined,null,false,0],
obj={};
arr.forEach((item) => {
const str = JSON.stringify(item) + \"\";
obj[str]=item
});
const res = [];
Object.keys(obj).forEach((item) => {
res.push(obj[item]);
});
console.log(res); // [{a: 1, b: 1},true,0,1,null,undefined,false]

3、利用ES6中Set的特性

循环数组,将数组中的每一项转换为字符串,存入新的数组中。利用Set集合元素的唯一性去重得到set集合,再将得到的set集合转换为新的数组。再循环新数组将每一项还原为原来的类型,存入新的数组中,所得的新数组就是去重后得到数组。

const arr = [{ a: 1, b: 1 },true,0,1,null,undefined,true,false,1,{ a: 1, b: 1 },undefined,null,false,0],
res1 = [];
arr.forEach((item) => {
const str = JSON.stringify(item) + \"\";
res1.push(str);
});
const set = new Set(res1);
const res2 = Array.from(set);
const res3 = res2.map((item) => {
return item === undefined + \"\" ? undefined : JSON.parse(item);
});
console.log(res3); // [{a: 1, b: 1},true,0,1,null,undefined,false]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/28766.html

(0)
新劵
上一篇 2021-09-24
下一篇 2021-09-24

相关推荐

  • 网上在线电影下载到u盘(怎么下载电影到电脑本地)

    接下来分享的3个下载方式+1个下载干货大全,是我最常用的也是最好用的下载方式了,其中第一个最直接,第二个最简单,第三个最强大!一、常用网页下载法其实很多网页播放音频或者视频的时候,后台都会有缓存下来的文件,抓住这个特点,我们就可以下载大

    2021-12-06 用户投稿
    0
  • uv是什么意思网络用语(uv是什么意思)

    在百度统计后台会看到“IP统计”、“UV统计”、“PV统计”,那么、什么是IP,什么是UV,什么又是PV,三者之间有什么关系,IP重要,还是UV重要,还是PV重要。什么是IP?IP即:InternetProtocol,指的是一个网络内的访

    2021-12-16
    0
  • 初次创业开什么店合适,创业摆摊还是开店(麻辣烫开店还是(摆地摊))

    我也是一个创业者初次创业开什么店合适,以我的观点,摆摊和开店都称不上创业,只能说选择一门营生,说好听点是做一门生意。那么作为一个营生和生意,到底是应该选择摆摊还是开店,我认为要根据自己实际情况,我分析

    2022-01-17
    0
  • 收到货款的总账科目(总账科目有哪些)

    资产负债表:反映期末企业的资产负债和净资产情况。利润表:反映的是一段期间的经营成果。现金流量表:反映企业现金流入有多少?现金流出有多少?会计的目标是提供财务信息。会计六要素:资产、负债、所有者权益、收入、费用、利润。【第一章会计总论】1、会计:是以…

    2022-01-18 随笔
    0
  • 家用容声冰柜报价(京东容声冰箱报价大全)

    冰箱是非常常见且必备的一款家庭厨房设备,好的冰箱到底怎么选?价格、节能、款式、保鲜……都要考虑到,下面这些国产冰箱根据品牌评价以及销量进行来筛选,一起来看看哪款冰箱更适合你?1、海尔冰箱连续十年的全球冰箱市场冠军。在中低端冰箱领域,海尔本身就是品质保

    2022-01-15
    0
  • 阿里云发布第一台设计师云电脑:跨系统应用无需安装即点即用

    久久派10月18日消息,10月18日云栖大会开放日上,阿里云基于新一代无影架构的两款一体机已对观众展出。两款新品分为23.8寸标准版和27寸Pro版,Pro版为手绘场景配有触控屏和触控笔,官方介绍为首款设计师云电脑。在云栖大会展区,观众已经可以对一体

    2021-10-20
    0

发表回复

登录后才能评论