zoukankan      html  css  js  c++  java
  • JavaScript 数组去重并统计重复元素出现的次数

    方法一、

                var arr = [1, 2, 3, 1, 2, 4];
    
                function arrayCnt(arr) {
                    var newArr = [];
                    for(var i = 0; i < arr.length; i++) {
                        if(newArr.indexOf(arr[i]) == -1) {
                            newArr.push(arr[i])
                        }
                    }
                    var newarr2 = new Array(newArr.length);
                    for(var t = 0; t < newarr2.length; t++) {
                        newarr2[t] = 0;
                    }
                    for(var p = 0; p < newArr.length; p++) {
                        for(var j = 0; j < arr.length; j++) {
                            if(newArr[p] == arr[j]) {
                                newarr2[p]++;
                            }
                        }
    
                    }
                    for(var m = 0; m < newArr.length; m++) {
                        console.log(newArr[m] + "重复的次数为:" + newarr2[m]);
                    }
                }
                arrayCnt(arr);    

    方法二、(es6方法去重)

           var arr = [1, 2, 3, 1, 2, 4];
    
                function arrayCnt(arr) {
                    var newArr = [];
                    //使用set进行数组去重
                    newArr = [...new Set(arr)];
                    var newarr2 = new Array(newArr.length);
                    for(var t = 0; t < newarr2.length; t++) {
                        newarr2[t] = 0;
                    }
                    for(var p = 0; p < newArr.length; p++) {
                        for(var j = 0; j < arr.length; j++) {
                            if(newArr[p] == arr[j]) {
                                newarr2[p]++;
                            }
                        }
    
                    }
                    for(var m = 0; m < newArr.length; m++) {
                        console.log(newArr[m] + "重复的次数为:" + newarr2[m]);
                    }
                }
                arrayCnt(arr);

    方法三、(利用对象key的唯一性)

           //方法:使用obj记录重复的元素,以及出现的次数
                function getCount(arr) {
                    var obj = {},
                        k, arr1 = [];
                    for(var i = 0, len = arr.length; i < len; i++) {
                        k = arr[i];
                        if(obj[k])
                            obj[k]++;
                        else
                            obj[k] = 1;
                    }
                    console.log(obj)
                    //保存结果{el-'元素',count-出现次数}
                    for(var o in obj) {
                        arr1.push({
                            el: o,
                            count: obj[o]
                        });
                    }
                    console.log(arr1);
                }
    
                getCount([4, 2, 2, 3, 1])
  • 相关阅读:
    [009]类型转换
    [008]new、delete及动态内存分配
    [007]操作符的求解顺序
    [010]转+修正---C++的贪吃蛇程序(未用面向对象封装)
    [006]为什么C++会被叫做是C++?
    [005]逗号表达式
    [JavaScript]转--如何让JS代码高大上
    [009]C---关于输出文本的打印问题
    [008]C---gcc环境下的一个编译器版本问题
    PlayMaker 状态机FSM重用
  • 原文地址:https://www.cnblogs.com/xiaomili/p/10536723.html
Copyright © 2011-2022 走看看