zoukankan      html  css  js  c++  java
  • js跟es6实现数组去重,并计算出现了几次

    数组去重是个经典的案例,虽然经常有看到,但是并没有完全去理解,今天好好做下笔记,温习温习。

     1 Array.prototype.unique3 = function(){
     2     var res = [];
     3     var json = {};
     4     for(var i = 0;i<this.length;i++){
     5         //console.log(!json[this[i]]); //如果是第一次出现就是true
     6         if(!json[this[i]]){ 
     7                     res.push(this[i]);
     8              json[this[i]] =1;  //1是代表了value的值,this[i]是key值 
     9         }
    10     } 
    11   return res;
    12 }
    13 
    14 //获取当前这个数字在数组中出现了几次
    15 Array.prototype.geshu = function(value){
    16     let str=this.join('');
    17     return str.split(value).length-1
    18 }
    19 
    20 //对应的数字在数组中分别出现了几次
    21 var reArr=arr.unique3();
    22 var newArr=[]
    23 for(var i=0;i<reArr.length;i++){
    24     newArr.push(arr.geshu(reArr[i]))
    25 }
    26 
    27 var arr = [1,4,1,3,2,3,1,1,1,1,1];
    28 console.log(arr.unique3());  //[1,4,3,2]
    29 console.log(arr.geshu(1));   //7
    30 console.log(newArr);   //[7,1,2,1]

    还有一种是es6的写法,得益于好友的分享。

    //es6写法
    {
        class Shuzu{
            constructor(arr) {
                this.arr=arr
            }
            unique3(){ //去重
                return Array.from(new Set(this.arr))
            }
            geshu(){ //找出重复的个数
                let num=[];
                let arrSum=this.unique3();
                    arrSum.forEach(value=>{
                    num.push(this.arr.join('').split(value).length-1)
                })
                return num
            } 
        }
        const arr = [1,4,1,3,2,3,1,1,1,1,1];
        const reArr=new Shuzu(arr)
        console.log(reArr.unique3())   //[1,4,3,2]
        console.log(reArr.geshu())   //[7,1,2,1]
    }

    有些东西看起来虽然很简单,但是真正去能去理解的寥寥无几,还是要多学习!

  • 相关阅读:
    【转】@JoinColumn 详解
    Hibernate的getTransaction()和beginTransaction()
    什么是事务(transaction)?它有什么好处
    tomcat安装不成功.提示:failed to install tomcat6 service ,check your setting and permissions
    java面试题02
    JAVA面试题01
    浅析=======Struts2之==========valueStack
    Hibernate映射文件
    Hibernate核心配置文件
    激活Microsoft Word 2010
  • 原文地址:https://www.cnblogs.com/hongyafang/p/9110721.html
Copyright © 2011-2022 走看看