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

 

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

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

 

三、方法三(使用對象記錄重複的元素,以及出現的次數)code

 

//方法:使用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])
相關文章
相關標籤/搜索