Js算法问题:判断一组数字中有几组相同的数字并计算相同数字个数?

比如1,2,2,5,9这组数字,有一组相同的数字为2,相同个数为2。1,1,3,3,3有两组相同数字,一组相同数字为1,相同个数为2,一组相同数字为3,相同个数为3。
现在要求写一个函数,随便输入一组数字就得出这样的结果,该怎么写?

阅读 7.3k
3 个回答
var count={};
for (var i = 0; i < array.length; i++) {
    if (count[array[i]]) {
        count[array[i]]++;
    }else {
        count[array[i]]=1;
    }
}
for (var key in count) {
    if (count.hasOwnProperty(key)) {
        console.log(key+':'+count[key]+'times');
    }
}

楼上的稍显不完备

function fengxi(array){
    var count={};
    for (var i = 0; i < array.length; i++) {
        if (count[array[i]]) {
            count[array[i]]++;
        }else {
            count[array[i]]=1;
        }
    }
    var out=[];
    for (var key in count) {
        if (count[key]>1) {
            out.push({"key":key,"count":count[key]})
        }
    }
    var rt="输入数组中存在"+out.length+"组重复数字,它们是:\n"
    for (var i=0;i<out.length;i++){
        rt=rt+out[i]["key"]+"重复了"+out[i]["count"]+"次\n";
    }
    return rt;
}
console.log( fengxi([1,1,3,3,3]) );
function getSameNumber(array){
    return array.reduce(function(p,n){
        if(!p[n]){
            p[n] = 1;
        }else{
            p[n] += 1
        }
        return p
    },{});
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题