博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js常用的数组去重方法
阅读量:5164 次
发布时间:2019-06-13

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

给出以下数组

var arr1 = new Array('1','2','3','3','5','4','5','6','5','5','88');

实现对数组的去重

1、 双重for循环去重

Array.prototype.Duplicate = function() {    let arr = this;    for(let i = 0; i < arr.length-1; i++) {      for (let j = i+1; j < arr.length; j++) {          if (arr[i] == arr[j]) {              arr.splice(j, 1);              j--;  // 删除元素之后,需要将数组的长度也减1,否则无法去除掉后面相同的值.          };      };    };    return arr;}

2、 利用递归调用去重

Array.prototype.Duplicate = function() {    let arr = this;    arr.sort();    function loop(index) {        if (index > 1) {            if (arr[index] == arr[index-1]) {                arr.splice(index, 1);            };            loop(index-1);        };    };    loop(arr.length-1);    return arr;}

3、 利用对象去重

Array.prototype.Duplicate = function() {    let arr = this;    let obj = {}    let arr2 = []    for (let i = 0; i < arr.length; i++) {        if (!obj[arr[i]]) {            obj[arr[i]] = true;            arr2.push(arr[i]);        }    };    return arr2;}

4、 利用indexOf

Array.prototype.Duplicate = function() {    let arr = this;    let arr2 = []    for (let i = 0; i < arr.length; i++) {        if (arr2.indexOf(arr[i]) == -1) {            arr2.push(arr[i]);        }    };    return arr2;}

5、 利用es6 includes方法判断

Array.prototype.Duplicate = function() {    let arr = this;    let arr2 = [];    for (let i = 0; i < arr.length; i++) {        if (!arr2.includes(arr[i])) {            arr2.push(arr[i]);        }    }    return arr2}

console.log(arr1.Duplicate().toString());

// 1,2,3,5,4,6,88

转载于:https://www.cnblogs.com/gaosong-shuhong/p/9771436.html

你可能感兴趣的文章
python字符串操作
查看>>
不同程序语言的注释和变量要求
查看>>
语言基础(9):static, extern 和 inline
查看>>
ES5_03_Object扩展
查看>>
bzoj 2600: [Ioi2011]ricehub
查看>>
创建数据库,表
查看>>
工厂模式
查看>>
计算机网络基础知识
查看>>
C#里如何遍历枚举所有的项
查看>>
如何在键盘出现时滚动表格,以适应输入框的显示
查看>>
超级强大的鼠标手势工具
查看>>
常用Dockerfile举例
查看>>
jquery的ajax用法
查看>>
设计模式-策略模式(Strategy)
查看>>
django orm 数据查询详解
查看>>
JarvisOJ Basic 熟悉的声音
查看>>
C# list导出Excel(二)
查看>>
CAS 单点登录模块学习
查看>>
跟着辛星用PHP的反射机制来实现插件
查看>>
Android应用开发-网络编程①
查看>>