• 1.利用标记
  • var arr = [2,6,2,6,4,3,16];// arr = [2,6,4,3,16]
    function norepeat(arr){
    var res = [];
    for(var i=0;i<arr.length;i++){
    var flag = true;
    for(var j=0;j<res.length;j++){
    if(arr[i]==res[j]){
    flag = false;//将要推入新数组的数组元素 在新数组中有重复
    }
    }
    if(flag){
    res.push(arr[i]);
    }
    }
    return res;
    }
    console.log(norepeat(arr));
  • 2.indexOf()找对应的下标
  • function norepeat(arr){
    var newArr = [];
    for(var i=0;i<arr.length;i++){
    if(newArr.indexOf(arr[i]) == -1){
    newArr.push(arr[i]);
    }
    }
    return newArr;
    }
    var arr = [1,2,3,5,6,1,2,5];
    console.log(norepeat(arr));
  • 3.Es5迭代方法filter() +indexOf
  •   var arr = [1, 2, 3, 1, 2, 3, 5, 6, 4, 5];
    var newArr = arr.filter(function(value, index, array) {
    console.log(value,index,array);
    return arr.indexOf(value) == index;
    })
    alert(newArr);
  • 4.利用快速排序去重(比较麻烦的一种啦)
  •      function quickSort(arr) {
    if(Array.isArray(arr)) { //先判断是不是个数组
    if(arr.length <= 1) { //设置限定条件
    return arr;
    }
    var left = [];
    var right = [];
    var midIndex = Math.floor(arr.length / 2); //找中间索引
    var midValue = arr.splice(midIndex, 1); //找中间值
    for(var j = 0; j < arr.length; j++) {
    if(arr[j] < midValue) {
    left.push(arr[j]);
    }
    if(arr[j] > midValue){
    right.push(arr[j]);
    }
    }
    return quickSort(left).concat(midValue, quickSort(right)); //递归直至数组长度为1 } else {
    alert('请传个数组');
    }
    }
    var arr1 = [6, 2, 5, 7, 21, 1,2,5];
    console.log(quickSort(arr1));

js 数组去重常见的几种方式的更多相关文章

  1. JavaScript数组去重—ES6的两种方式

    说明 JavaScript数组去重这个问题,经常出现在面试题中,以前也写过一篇数组去重的文章,(JavaScript 数组去重的多种方法原理详解)但感觉代码还是有点不够简单,今天和大家再说两种方法,代 ...

  2. JS数组遍历的十二种方式

    遍历有如下几种方式 数组方法 map forEach filter find findIndex every some reduce reduceRight 其他方法 for for in for o ...

  3. 【js】js数组置空的三种方式

    方式1: var arr = new Array(1,2,3); alert(arr); arr.splice(0, arr.length); alert(arr); 方式2: var arr = n ...

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

    JS数组去重的几种常见方法 一.简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ ...

  5. js数组去重的4种方法

    js数组去重,老生长谈,今天对其进行一番归纳,总结出来4种方法 贴入代码前 ,先对浏览器Array对象进行支持indexOf和forEach的polyfill Array.prototype.inde ...

  6. js数组去重五种方法

    今天来聊一聊JS数组去重的一些方法,包括一些网上看到的和自己总结的,总共5种方法(ES5). 第一种:遍历数组法 这种方法最简单最直观,也最容易理解,代码如下: var arr = [2, 8, 5, ...

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

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

  8. js数组去重常用方法

    js数组去重是面试中经常会碰到的问题,无论是前端还是node.js数组常见的有两种形式,一种是数组各元素均为基本数据类型,常见的为数组字符串格式,形如['a','b','c'];一种是数组各元素不定, ...

  9. JS 数组去重(数组元素是对象的情况)

    js数组去重有经典的 几种方法 但当数组元素是对象时,就不能简单地比较了,需要以某种方式遍历各值再判断是否已出现. 因为: 1.如果是哈希判断法,对象作哈希表的下标,就会自动转换成字符型类型,从而导致 ...

随机推荐

  1. react-native WebView 返回处理 (非回调方法可解决)

    1.前言 项目中有些页面内容是变更比较频繁的,这些页面我们会考虑用网页来解决. 在RN项目中提供一个公用的Web页,如果是网页内容,就跳转到这个界面展示. 此时会有一个问题是,网页会有一级页面,二级页 ...

  2. c++多态性---虚函数

    虚函数与纯虚函数的区别: 1.拥有虚函数的类可以声明对象,但拥有纯虚函数的类不可以声明对象(只能声明一个指针,并且不能给其分配内存),并且将这个类称为抽象类 特点: 1.虚函数是动态绑定的基础. 2. ...

  3. Centos7安装GitLab

    GitLab CE Download Archives gitlab安装调试小记 Gitlab Free Trial GitLab搭建手记 Gitlab社区版的使用 GUI PNG Gitlab升级到 ...

  4. 高可用之KeepAlived(2):keepalived+lvs

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  5. 批标准化(Batch Norm)

    BN作用: 加速收敛 控制过拟合,可以少用或不用Dropout和正则 降低网络对初始化权重不敏感 允许使用较大的学习率 一.如何加速收敛? 通过归一化输入值/隐藏单元值,以获得类似的范围值,可加速学习 ...

  6. # *Qt for Com 交互*

    Qt COM Q_PROPERTY ActiveX properties public slots ActiveX methods signals ActiveX events Qt 属性支持的数据类 ...

  7. Opencv 3.3.0 常用函数

    如何调图像的亮度和对比度? //如何增加图片的对比度或亮度? void contrastOrBrightAdjust(InputArray &src,OutputArray &dst, ...

  8. flask项目开发中,遇到http 413错误

    在flask项目中,上传文件时后台报http 413 Request Entity Too Large 请求体太大错误! 解决的2种方法: 1.在flask配置中设置 MAX_CONTENT_LENG ...

  9. “大话架构”阿里架构师分享的Java程序员需要突破的技术要点

    一.源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心. 我认为是阅读源码的最核心 ...

  10. zabbix监控安装

    1.关闭iptables和selinux # systemctl stop firewalld # systemctl disable firewalld # setenforce 2.安装yum源 ...