js数组去重方法

1.遍历数组,建立新数组,利用indexOf判断是否存在于新数组中,不存在则push到新数组,最后返回新数组

代码如下(示 例):

function getArray(ar) {var result = [];for (var i = 0, j = ar.length; i < j; i++) {if (result.indexOf(ar[i]) === -1) {result.push(ar[i]);}}return result;
}

2.遍历数组,利用object对象保存数组值,判断数组值是否已经保存在object中,未保存则push到新数组并用object[arrayItem]=1的方式记录保存

代码如下(示 例):

function getArray(ar) {var tmp = {},result = [];for (var i = 0, j = ar.length; i < j; i++) {if (!tmp[ar[i]]) {tmp[ar[i]] = 1;result.push(ar[i]);}}return result;
}

3.数组下标判断法, 遍历数组,利用indexOf判断元素的值是否与当前索引相等,如相等则加入

代码如下(示 例):

function getArray(ar) {var result = [];ar.forEach(function(e, i, ar) {if (ar.indexOf(e) === i) {result.push(e);}});return result;
}

4.ES6-Set

代码如下(示 例):

[...new Set(['1',2,3,4,1,2,12,2])]

5.利用键值对-对象不能相同名来去重

代码如下(示 例):

let a = [1,2,13,1,2,1,'1','1'];const getArray = arr => {var obj ={}arr.forEach(value => {obj[value]=0;})return Object.keys(obj);
}
console.log(getArray(a));
//有缺陷,当数组中存放1和‘1’会默认去掉其中一个,从而达不到想要的效果

6.使用reduce去重

代码如下(示 例):

let obj = {};
arr = arr.reduce(function(item, next) {obj[next.key] ? '' : obj[next.key] = true && item.push(next);return item;
}, []);

7.使用filter去重

代码如下(示 例):

getArray = (arr)=>{return arr.filter((e,i,arr)=>{return  arr.indexOf(e) == i;})
}

JS数组去重方法记录相关推荐

  1. JS数组去重方法小结

    JS数组去重 看了网上很多数组去重方法,用的比较常见的大概就几种,今天想自己来做一个总结. 部分内容参考该博客 1 . 在原数组上操作(基本方法) 思路:利用循环嵌套,判断数组中每个元素与其后面的元素 ...

  2. js数组去重方法分析与总结

    数组去重经常被人拿来说事,虽然在工作中不常用,但他能够很好的考察js基础知识掌握的深度和广度,下面从js的不同阶段总结一下去重的方法. ES3阶段 该阶段主要通过循环遍历数组从而达到去重的目的 多次循 ...

  3. android 数组排重方法,js数组去重方法集合 - osc_779ncf3o的个人空间 - OSCHINA - 中文开源技术交流社区...

    //第一种方法,新建一个空数组,将原来的数组循环逐个与新数组的成员做比较,如果新数组没有该元素就push进来 var arr = ['a', 1, 1, 1, 2, 4, 4, 'b', 'c', ' ...

  4. html怎么创建数组,js创建数组的三种方法 JS数组去重的几种常见方法

    JS数组有哪几种定义方式? js 里创建一个数组 那几种方式有什么区别吗?a = new Array(); b = []; 性能问题吗?? function clear(arr) { // 1 如何获 ...

  5. 常用的js数组去重的方法

    常用的js数组去重的方法 1. 使用for循环去重 2.使用set对象去重 3.使用数组索引indexOf()方法搭配for循环去重 4.使用includes()方法搭配for循环去重 5.使用fif ...

  6. js数组去重的方法:

    js数组去重:项目中需求是选择一些数据,但是不能重复出现同样的数据,这里就要用到JS数组去重,以下几种数组去重方法简单实用哦! 方法一:利用数组的indexOf方法去重 需求: 利用indexOf判断 ...

  7. js数组去重(多种方法)

    1 // js数组去重 2 Array.prototype.fun1 = function(){ 3 var arr = this, 4 result = [], 5 i, 6 len = arr.l ...

  8. JS数组去重的6种算法实现

    1.遍历数组法 最简单的去重方法,实现思路:新建一新数组,遍历传入数组,值不在新数组就加入该新数组中:注意点:判断值是否在数组的方法"indexOf"是ECMAScript5 方法 ...

  9. JS数组去重算法实现

    1.遍历数组法 最简单的去重方法, 实现思路:新建一新数组,遍历传入数组,值不在新数组就加入该新数组中:注意点:判断值是否在数组的方法"indexOf"是ECMAScript5 方 ...

最新文章

  1. php学习之道:WSDL具体解释(三)
  2. 智能车竞赛技术报告 | 节能信标组 - 华南理工大学 - 华工雨花队
  3. hdu 1814 字典序最小的2sat(暴力深搜)
  4. 恭喜我的同事丁宇入选年度 IT 领军人物
  5. 不越狱换壁纸_终于来了!iOS 14.3 正式版,可自动定时换壁纸
  6. linux下tar解压特定的目录
  7. 【渝粤题库】国家开放大学2021春1070组织行为学题目
  8. JAVA中的命令模式实例教程
  9. 使用鸿蒙系统的家电厂商,除了华为外!谁还会用鸿蒙系统?米OV们不可能:这些巨头才会用...
  10. Ubuntu16.04下安装opencv-3.3.0
  11. 制造行业相关名词释义
  12. 苹果手机屏幕镜像搜索不到电视_康佳电视投屏不了,3个办法解决!
  13. ssh链接报错Server responded “Algorithm negotiation failed”
  14. lan和adsl是什么信号_路由器上的adsl是什么意思【图】
  15. Java如何实现定时任务——从某一天起每天定点执行
  16. sws_kp操作(selenium webdriver+python)
  17. scrapy框架下的豆瓣电影评论爬取以及登录,以及生成词云和柱状图
  18. 迅雷超级会员和白金会员怎么买最便宜多少钱一年多少钱一个月
  19. 利用VC++与MSXML解析XML文档
  20. 计算机论文提纲范文样本,论文提纲范文样本

热门文章

  1. python的字典与集合
  2. 12.04 深圳站 | Serverless Developer Meetup 开放报名
  3. 揭秘阿里云 RTS SDK 如何实现直播降低延迟和卡顿
  4. 如何帮用户管好云账本?阿里云数据库助力收钱吧!
  5. 开放下载!《深入浅出玩转物联网平台》
  6. 物联网的全球可用性如何带来新的商机?
  7. Code Review 是苦涩但有意思的修行
  8. python数据库连接池工具类_Python数据库连接池DBUtils
  9. 如何定位和处理手机游戏内存泄露
  10. 荣耀V40值得购买吗?玩游戏是一把好手!