JavaScript 数组去重并统计重复元素出现的次数

2018-06-24 01:01:43来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

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

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:javascript设计模式——策略模式

下一篇:vue项目中的webpack-dev-sever配置