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

    1、方法一

    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);

     

    2、方法二(set方法去重)

    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);

     

    3、方法三(使用对象记录重复的元素,以及出现的次数)

    //方法:使用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])
  • 相关阅读:
    UVA 10462 Is There A Second Way Left?(次小生成树&Prim&Kruskal)题解
    POJ 1679 The Unique MST (次小生成树)题解
    POJ 2373 Dividing the Path (单调队列优化DP)题解
    BZOJ 2709 迷宫花园
    BZOJ 1270 雷涛的小猫
    BZOJ 2834 回家的路
    BZOJ 2506 calc
    BZOJ 3124 直径
    BZOJ 4416 阶乘字符串
    BZOJ 3930 选数
  • 原文地址:https://www.cnblogs.com/mengfangui/p/8033722.html
Copyright © 2011-2022 走看看