精华内容
下载资源
问答
  • js去重的三种方法
    2021-10-18 00:17:36

    方法一:利用数组的indexOf方法去重

    需求:

    利用indexOf判断是否存在于新数组中,不存在则push到新数组,最后返回新数组

    1. 需要一个数组用于存放筛选之后的数据

    2. 遍历原来的数组,把不是0的数据添加到新数组里面

    3. 新数组里面的个数,用length不断累加

            var arr = [58, 6, 8, 56, 0, 8];
                    function unique() {
                        var newArr = [];
                        for (var i = 0; i < arr.length; i++) {
                            if (newArr.indexOf(arr[i]) === -1) {
                                newArr.push(arr[i]);
                            }
                        }
                        return newArr;
                    }
                    var arr = unique([58, 6, 8, 56, 0, 8]);
                    console.log(arr);
         

            方法二 :使用双重for循环,再利用数组的splice方法去重

           var arr = [0,69,58,38,0,77,69];
                    for (var i = 0; i < arr.length; i++) {
                        for (var j = i + 1; j < arr.length; j++) {
                            if (arr[j] == arr[i]) {
                            //splice(索引,长度,添加)
                                arr.splice(j, 1);
                                j--;
                            }
                        }
                    }
                    console.log(arr);

            方法三:利用ES6中set方法去重

            var arr1 = [25, 2, 13, 25,2,66,99];
            var sum = new Set(arr1);
            console.log(sum);

    更多相关内容
  • 有时候我们做项目的时候往往会需要把数组里面一些重复的项去掉,但是原生JS有排序,有筛选等等,但是就是没有数组去重怎么办呢? 这能怎么办,自己手动实现嘛。 数组不像对象和hash有唯一的标志特征(key)。所以,...
  • js去重filter

    2022-03-20 21:00:36
    filter用于对数组进行过滤。 它创建一个新数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。 注意:filter()不会对空数组进行检测、不会改变原始数组 <script> var arr =["a",1,2,3,"a",3,2...
    • filter用于对数组进行过滤
    • 它创建一个新数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
    • 注意:filter()不会对空数组进行检测、不会改变原始数组
      <script>
            var  arr =["a",1,2,3,"a",3,2,1];
            var  newarr=arr.filter(function(v,n,k){
                    return k.indexOf(v)==n;
            });
            console.log(newarr);
      </script>

       

    展开全文
  • 本文给大家收藏整理了js数组去重的n种方法,大家可以根据自己需要选择比较好的方法,感兴趣的朋友一起看看吧
  • js对字符串(逗号隔开的)进行去重操作;js对json数组进行去重操作(指定某个属性),开发中经常遇到的前端小方法,简单实用
  • js去重与排序。

    2022-02-28 14:58:25
    自定义变量名字.sort((a,b)=>{ return a -b}) 去重(6种方法) 1.双层循环,外层循环元素,内层循环时比较值 如果有相同的值则跳过,不相同则push进数组 Array.prototype.distinct = function(){ var arr = this, ...

    排序

    从大到小

    this.timeArry.sort((a,b)=>{return  b.dayTimes-a.dayTimes})
    

    从小到大

    this.自定义变量名字.sort((a,b)=>{ return a -b})
    

    去重(6种方法)


    1.双层循环,外层循环元素,内层循环时比较值

    如果有相同的值则跳过,不相同则push进数组


    Array.prototype.distinct = function(){
     var arr = this,
      result = [],
      i,
      j,
      len = arr.length;
     for(i = 0; i < len; i++){
      for(j = i + 1; j < len; j++){
       if(arr[i] === arr[j]){
        j = ++i;
       }
      }
      result.push(arr[i]);
     }
     return result;
    }
    var arra = [1,2,3,4,4,1,1,2,1,1,1];
    arra.distinct();    //返回[3,4,2,1]
    

    在这里插入图片描述

    2.利用splice直接在原数组进行操作


    双层循环,外层循环元素,内层循环时比较值

    值相同时,则删去这个值

    注意点:删除元素之后,需要将数组的长度也减1.


    Array.prototype.distinct = function (){
     var arr = this,
      i,
      j,
      len = arr.length;
     for(i = 0; i < len; i++){
      for(j = i + 1; j < len; j++){
       if(arr[i] == arr[j]){
        arr.splice(j,1);
        len--;
        j--;
       }
      }
     }
     return arr;
    };
    var a = [1,2,3,4,5,6,5,3,2,4,56,4,1,2,1,1,1,1,1,1,];
    var b = a.distinct();
    console.log(b.toString()); //1,2,3,4,5,6,56
    

    在这里插入图片描述


    优点:简单易懂

    缺点:占用内存高,速度慢


    3.利用对象的属性不能相同的特点进行去重

    Array.prototype.distinct = function (){
     var arr = this,
      i,
      obj = {},
      result = [],
      len = arr.length;
     for(i = 0; i< arr.length; i++){
      if(!obj[arr[i]]){ //如果能查找到,证明数组元素重复了
       obj[arr[i]] = 1;
       result.push(arr[i]);
      }
     }
     return result;
    };
    var a = [1,2,3,4,5,6,5,3,2,4,56,4,1,2,1,1,1,1,1,1,];
    var b = a.distinct();
    console.log(b.toString()); //1,2,3,4,5,6,56
    

    在这里插入图片描述

    4.数组递归去重


    运用递归的思想

    先排序,然后从最后开始比较,遇到相同,则删除


    Array.prototype.distinct = function (){
     var arr = this,
      len = arr.length;
     arr.sort(function(a,b){  //对数组进行排序才能方便比较
      return a - b;
     })
     function loop(index){
      if(index >= 1){
       if(arr[index] === arr[index-1]){
        arr.splice(index,1);
       }
       loop(index - 1); //递归loop函数进行去重
      }
     }
     loop(len-1);
     return arr;
    };
    var a = [1,2,3,4,5,6,5,3,2,4,56,4,1,2,1,1,1,1,1,1,56,45,56];
    var b = a.distinct();
    console.log(b.toString());  //1,2,3,4,5,6,45,56
    

    在这里插入图片描述

    5.利用indexOf以及forEach

    Array.prototype.distinct = function (){
     var arr = this,
      result = [],
      len = arr.length;
     arr.forEach(function(v, i ,arr){  //这里利用map,filter方法也可以实现
      var bool = arr.indexOf(v,i+1);  //从传入参数的下一个索引值开始寻找是否存在重复
      if(bool === -1){
       result.push(v);
      }
     })
     return result;
    };
    var a = [1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3,3,3,3,2,3,3,2,2,1,23,1,23,2,3,2,3,2,3];
    var b = a.distinct();
    console.log(b.toString()); //1,23,2,3
    

    在这里插入图片描述

    *** 6.利用ES6的set***


    Set数据结构,它类似于数组,其成员的值都是唯一的。

    利用Array.from将Set结构转换成数组


    function dedupe(array){
     return Array.from(new Set(array));
    }
    dedupe([1,1,2,3]) //[1,2,3]
    

    在这里插入图片描述


    拓展运算符(…)内部使用for…of循环


    let arr = [1,2,3,3];
    let resultarr = [...new Set(arr)]; 
    console.log(resultarr); //[1,2,3]
    

    在这里插入图片描述

    7.补充合并数组并去重的方法
    1.concat()方法
    思路:concat() 方法将传入的数组或非数组值与原数组合并,组成一个新的数组并返回。该方法会产生一个新的数组。

    this.timeData = this.timeData.concat(v.list);
    
    function concatArr(arr1, arr2){
      var arr = arr1.concat(arr2);
      arr = unique1(arr);//再引用上面的任意一个去重方法
      return arr;
    }
    

    2.Array.prototype.push.apply()
    该方法优点是不会产生一个新的数组。

    var a = [1, 2, 3];
    var b = [4, 5, 6];
    Array.prototype.push.apply(a, b);//a=[1,2,3,4,5,6]
    //等效于:a.push.apply(a, b);
    //也等效于[].push.apply(a, b); 
    function concatArray(arr1,arr2){
      Array.prototype.push.apply(arr1, arr2);
      arr1 = unique1(arr1);
      return arr1;
    }
    
    展开全文
  • javascript去重

    千次阅读 2021-09-26 21:37:28
    1.Set去重//代码量是不是特别少 var s=[15,4,45,6,64,649,94,8] console.log(new Set(s)) 2.indexof var arr = [1, 2, 1]; var newArr = []; for (var i = 0; i < arr.length; i++) { if (newArr.indexOf...

    1.Set去重//代码量是不是特别少

    var s=[15,4,45,6,64,649,94,8]
     console.log(new Set(s))
    

    2.indexof

    var arr = [1, 2, 1];
           var newArr = [];
           for (var i = 0; i < arr.length; i++) {
               if (newArr.indexOf(arr[i]) == -1) { newArr.push(arr[i])}
            }
            console.log(newArr);
    

    3.利用object属性

    var arr = [1, 2, 1];
           var newArr = {};
           for (var i = 0; i < arr.length; i++) {
              newArr[arr[i]]=1
            }
            console.log(...Object.keys(newArr));
    

    其他数组下标标注,两个数对比等等方法有点浪费计算如果你有请直接留言评论给大家

    展开全文
  • JS去重的几种方法

    千次阅读 2021-02-20 20:42:43
    1、利用set去重 代码如下(示例): function arr1(arr) { return Array.from(new Set(arr)) } var arr = [1, 1, 1, 2, 2, 3, 4, 5, 6, 3, 4, 2, 4, 1,]; console.log(arr1(arr)) 这是目前最简单的去重方法,但是不...
  • JS去重的方法: 1.常规去重 let list = [0,1,2,3,2,1,0,4] let arr = [] for(let item of list){ if(arr.indexOf(item) == -1){ arr.push(item) } } ===> arr = [0,1,2,3,4] 2.快速去重 let list = [0,1,2,3...
  • 原生JS去重方法

    2022-03-22 08:22:13
    1.js数组的去重,排序,各有几种方式,分别是怎么实现的 去重方法一 arr.splice var arr=[1,3,5,6,3,5,6,3,7,9,23,23] function a(arr){ for(var i=0;i<arr.length-1;i++){ for(var j=i+1;j<...
  • JavaScript去重的七种方法 简单易懂 方法一:暴力去重法 // 暴力去重法 function ArrayIsUnique (array) { if (!Array.isArray(array)) return; for (let i = 0; i < array.length; i++) { for (let j = i + ...
  • js 去重处理函数

    2021-02-23 20:36:15
    // 去重处理函数 quChong(arr) { //遍历数组中所有的元素 for (var i = 0, len = arr.length; i < len; i++) { for (var v = i + 1; v < len; v++) { //检查是否有重复的元素 if (arr[i].sessionId === ...
  • 一、利用ES6 Set去重(ES6中最常用) function unique (arr) { return Array.from(new Set(arr)) } var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN'...
  • JavaScript去重

    2020-05-14 21:13:54
    Array.from(new Set(arr))或[...new Set(arr)]: var arr = [1,1,2,5,6,3,5,5,6,8,9,8];...for循环嵌套,利用splice去重: function unique (origin) { let arr = [].concat(origin); for (let i = 0; i
  • 主要介绍了JS数组属性去重并校验重复数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • JS去重方法

    千次阅读 2018-07-24 09:39:02
    方法三:利用对象的属性不能相同的特点进行去重 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
  • 主要介绍了JS实现的字符串数组去重功能,结合实例形式分析了javascript基于ES6、ES5、ES3及正则实现数组去重的相关操作技巧,需要的朋友可以参考下
  • JS去重ES6方法

    2019-09-21 01:20:14
    // JS去重ES6方法 let arr = [0,0,0,1,1,2,3,5,9,6,5,4,10]; // 数组去重法1 let newarr = []; //定义一个空数组 for (var i = 0;i < arr.length;i++) { //先遍历 if(newarr.indexOf(arr[i]) == -1){ //...
  • 在工作中对于去重的例子真的太多了,面试也会经常被问到,这个真的频繁了,我整理了这些方法分享给大家,希望大家根据自己的实际场景运用。 1、ES6的Set(这个最简单) var list = [ 1,2,1,{name:1},{name:1},null, ...
  • js代码-去重:Set 对象 + 解构赋值
  • js代码-数组去重相加

    2021-07-16 13:07:41
    js代码-数组去重相加
  • 去重方法1: arrHeavy(arr){ let map = new Map() for (let item of arr) { if (!map.has(item)) { map.set(item, item) } } return [...map.values()] } 去重方法2: mapGet (arr) { for (let i = 0;...
  • 本篇文章主要介绍了详解JS去重及字符串奇数位小写转大写 ,非常具有实用价值,需要的朋友可以参考下。
  • js去重,取最大值

    2019-09-11 23:32:20
    js的数组去重 1. var arr = [1,2,2,2,2,4,5,6,6,6,6,8,8,9,9,99] function uniquel(arr){ var hase = []; for(var i=0;i<arr.length;i++){ if(hase.indexOf(arr[i])==-1){ hase.push(arr[i]); } } return hase; }...
  • 废话不多话,直接看代码 let taskDocNumArr =[{id:1,name:z},{id:1,name:z},{id:2,name:k}] ... hash[curVal.id] //这里的id用作去重的唯一标识 ? "" : (hash[curVal.id] = true && preVal.push(curV
  • js去重

    2019-09-26 17:59:02
    let temp = []; for (var a = 0; a < this.resultList.length; a++) { if (temp.indexOf(this.resultList[a].attributes.NAME) === -1) { temp.push(this...
  • <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta ...meta name="viewport" content="width=device-width, initial-scale=1.0">...title&...
  • js 去重

    2019-05-29 11:00:00
    转载于:https://www.cnblogs.com/huangwentian/p/10942486.html
  • js去重,分组

    2021-03-08 16:54:34
    js去重 function Dateilter(arr) { //取出字段的date并去重 let obj = {} arr.map(v => { obj[v.date] = 0 }) let timeArr = Object.keys(obj) // 用筛选函数返回相应集合 let result = timeArr.map(v => { ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 46,887
精华内容 18,754
关键字:

js去重

友情链接: 1.zip