消息关闭
    暂无新消息!

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


3个回答

︿ 2
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');
    }
}
︿ 0

楼上的稍显不完备

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]) );
︿ 0
function getSameNumber(array){
    return array.reduce(function(p,n){
        if(!p[n]){
            p[n] = 1;
        }else{
            p[n] += 1
        }
        return p
    },{});
}