【JavaScript】JS計算數組元素重複次數

49 阅读1分钟

1. Max Times

var str="qwertyuiopasdfghjklzxcvbnmqazwsxaswazaaa";
var arr=str.split("");  // 转换为数组

function moreValue(arr) {
  if (!arr) return false;
  if (arr.length === 1) return 1; 
  let res = {}
  let maxNum = 0;
  let maxValue = null;
  for(let i = 0; i < arr.length;i++) {
    let val = arr[i]
    res[val] === undefined ? res[val] = 1 : res[val]++;
    if(res[val] > maxNum) {
      maxNum = res[val];
      maxValue = val
    }
  }
  return maxValue +','+ maxNum;
}
 
console.log(moreValue(arr)); // a,7

2. Use Reduce

var arr = ["李","李","设","弟","弟","生","生","李"]; 
function getRepeatNum(){ 
    return arr.reduce(function(prev,next){ 
        prev[next] = (prev[next] + 1) || 1; 
        return prev; 
    },{}); 
} 
console.log(getRepeatNum());

3. No Use Reduce

//统计一个数组中有多少个不重复的单词:

var arr = ["李","李","设","弟","弟","生","生","李"]; 
function getRepeatNum(){ 
    var obj = {}; 
    for(var i= 0, l = arr.length; i< l; i++){ 
        var item = arr[i]; 
        obj[item] = (obj[item] +1 ) || 1; 
    } 
    return obj; 
}
console.log(getRepeatNum());