js常用的数组去重方法
给出以下数组
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常用的数组去重方法的更多相关文章
- Js里面的数组去重方法
		去掉数组里面重复的有很多种,我这里就说一种比较简单的吧. var arr=[23,33,44,33,44,66,44,55,44,4,44,33,23]; for(var i=0;i<arr.l ... 
- js中数组去重方法及性能对比
		js中数组的 数组去重 常用的数组去重方法以及效率分析: 首先我们先构建一个数组,主要是用于进行去重实验,我们主要实验的量级为1000,10000,100000,500000.具体的生成数组的方法如下 ... 
- JS实现数组去重方法大总结
		js数组根据对象中的元素去重: var arr2 = [ { name: "name1", num: "1" }, { name: "name2&qu ... 
- 原声js数组去重方法
		数组去重方法 方法一 ---- 利用数组filter + indexOf方法去重 方法二 ---- 利用数组forEach + indexOf方法去重 方法三 ---- 利用数组from方法 + Se ... 
- JavaScript 数组去重 方法汇总
		<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ... 
- js数组去重方法分析与总结
		数组去重经常被人拿来说事,虽然在工作中不常用,但他能够很好的考察js基础知识掌握的深度和广度,下面从js的不同阶段总结一下去重的方法. ES3阶段 该阶段主要通过循环遍历数组从而达到去重的目的 多次循 ... 
- JS实现数组去重方法整理
		前言 我们先来看下面的例子,当然来源与网络,地址<删除数组中多个不连续的数组元素的正确姿势> 我们现在将数组中所有的‘ a’ 元素删除: var arr = ['a', 'a', 'b', ... 
- JS常见的几种数组去重方法
		总结一下JS中用到的数组去重的方法 方法一: 该方法利用对象的属性值不能相同: function arrDelLikeElement (array) { const result = []; con ... 
- js 数组去重方法汇总
		<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ... 
随机推荐
- 利用art.template模仿VUE
			首先先看一下Typescript代码: import template = require('art-template/lib/template-web'); interface TemplateBi ... 
- SDN实验---Mininet的相关命令(待补充完善)
			一:补充 (一)推文 openvswitch的原理和常用命令 https://blog.csdn.net/ten_sory/article/details/79593554 (二)回顾:sudo mn ... 
- 通过Onvif设备探索获取EasyNVR网页无插件播放所需要的摄像机硬盘录像机NVR的RTSP地址
			想实现网络监控摄像头进行视频直播的朋友门应该知道,方法其实非常简单,你不需要使用支持直播的网络摄像机,只需要经过一套流媒体服务器将监控摄像头的RTSP视频流转为RTMP\HLS\HTTP-FLV视频流 ... 
- packaged_task
			/** @file packaged_task.cpp * @note * @brief * @author * @date 2019-8-15 * @note * @history * @warni ... 
- [LeetCode] 129. Sum Root to Leaf Numbers 求根到叶节点数字之和
			Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a number ... 
- POJ8469 特殊密码锁
			总时间限制: 1000ms 内存限制: 1024kB 描述 有一种特殊的二进制密码锁,由n个相连的按钮组成(n<30),按钮有凹/凸两种状态,用手按按钮会改变其状态. 然而让人头疼的是,当你按一 ... 
- linux虚拟机IP发生变化之后上面Oracle数据库的处理
			1. 首先说明一下 centos 和 rhel 的关系 redhat是最大的开源软件公司(现在已经被IBM收购) 作为开源最大的受益者, redhat 自己的 rhel(redhat enterpr ... 
- 《学渣的电子技术自学笔记》——二极管的工作频率与PN结结面积的关系
			<学渣的电子技术自学笔记>--二极管的工作频率与PN结结面积的关系 书本原文 :按结构分,二极管有点接触型.面接触型和平面型三类.点接触型二极管(一般为锗管)的PN结结面积很小(结电容小) ... 
- 【Linux】一步一步学Linux——初识Linux命令解析器(10)
			目录 00. 目录 01. Shell简介 02. Shell分类 03. 交互式shell和非交互式shell 04. 登录shell和非登录shell 05. Shell类型 06. 参考 00. ... 
- 颜色转换、随机、16进制转换、HSV
			颜色转换.随机.16进制转换.HSV: /** * * *-----------------------------------------* * | *** 颜色转换.随机.16进制转换.HSV * ... 
