给出以下数组

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

2、 利用递归调用去重

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

3、 利用对象去重

Array.prototype.Duplicate = function() {
let arr = this;
let obj = {}
let arr2 = []
for (let i = ; 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 = ; i < arr.length; i++) {
if (arr2.indexOf(arr[i]) == -) {
arr2.push(arr[i]);
}
};
return arr2;
}

5、 利用es6 includes方法判断

Array.prototype.Duplicate = function() {
let arr = this;
let arr2 = [];
for (let i = ; 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

js常用的数组去重方法的更多相关文章

  1. Js里面的数组去重方法

    去掉数组里面重复的有很多种,我这里就说一种比较简单的吧. var arr=[23,33,44,33,44,66,44,55,44,4,44,33,23]; for(var i=0;i<arr.l ...

  2. js中数组去重方法及性能对比

    js中数组的 数组去重 常用的数组去重方法以及效率分析: 首先我们先构建一个数组,主要是用于进行去重实验,我们主要实验的量级为1000,10000,100000,500000.具体的生成数组的方法如下 ...

  3. JS实现数组去重方法大总结

    js数组根据对象中的元素去重: var arr2 = [ { name: "name1", num: "1" }, { name: "name2&qu ...

  4. 原声js数组去重方法

    数组去重方法 方法一 ---- 利用数组filter + indexOf方法去重 方法二 ---- 利用数组forEach + indexOf方法去重 方法三 ---- 利用数组from方法 + Se ...

  5. JavaScript 数组去重 方法汇总

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

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

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

  7. JS实现数组去重方法整理

    前言 我们先来看下面的例子,当然来源与网络,地址<删除数组中多个不连续的数组元素的正确姿势> 我们现在将数组中所有的‘ a’ 元素删除: var arr = ['a', 'a', 'b', ...

  8. JS常见的几种数组去重方法

    总结一下JS中用到的数组去重的方法  方法一: 该方法利用对象的属性值不能相同: function arrDelLikeElement (array) { const result = []; con ...

  9. js 数组去重方法汇总

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

随机推荐

  1. CMU Database Systems - Database Recovery

    数据库数据丢失的典型场景如下, 数据commit后,还没有来得及flush到disk,这时候crash就会丢失数据 当然这只是fail的一种情况,DataBase Recovery要讨论的是,在各种f ...

  2. LoadRunner之录制你的第一个脚本

    LoadRunner安装完成之后,肯定就迫不及待的想要上手试用了.下面就是讲一下LR脚本录制的流程和基本的设置. 1.先放一张脚本录制以及运行的流程图 2.脚本录制步骤 1)以管理员身份打开LR软件, ...

  3. Linux_CentOS中Mongodb4.x 安装调试、远程管理、配置 mongodb 管理员密码

    Mongodb4.x 安装 官方文档:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/ 1.配置 yum 源 1 ...

  4. opencv yuvNV21转RGB

    void yuv420Torgb() { FILE *fp = fopen("D:\\1.yuv","rb"); ; ; uchar *yuvdata = / ...

  5. 元数据Meta

    元数据,指的是“除了字段外的所有内容”,例如排序方式.数据库表名.人类可读的单数或者复数名等等.所有的这些都是非必须的,甚至元数据本身对模型也是非必须的. 在模型中增加元数据,需要在模型类中添加一个子 ...

  6. 树莓派插入U盘自动拷贝系统日志到U盘或通过U盘升级程序

    注意,U盘用Fat32格式,NTFS格式的话,需要在Linux另外安装相应驱动. 可通过udev实现如题的功能. 在/etc/udev/rules.d/目录下新建规则文件98-logcopy.rule ...

  7. 带CheckBox美化控件的表格全选

    带CheckBox美化控件 <table class="positionTable commonListTable" id="positionTable" ...

  8. python实践项目四:猜数字游戏

    题目要求:在1-20中随机生成一个数字,你来猜,只有6次机会. 举例一: #!/usr/bin/python # -*- coding: UTF-8 -*- import random secretN ...

  9. python文件夹操作

    1.遍历文件夹下所有文件2.将后缀为.DCM的文件复制到指定文件夹 import os import shutil def all_path(dirname): result = []#所有的文件 f ...

  10. PostgreSQL的参数优化

    硬件和软件信息 CPU: Intel(R) Xeon(R) CPU E5-2683 v3 @ 2.00GHz 2 sockets / 28 cores / 56 threads内存: 256GB of ...