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

发布于 2022-09-04 14:40:41 字数 126 浏览 10 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

心头的小情儿 2022-09-11 14:40:41
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');
    }
}
一刻暧昧 2022-09-11 14:40:41

楼上的稍显不完备

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]) );
乖乖 2022-09-11 14:40:41
function getSameNumber(array){
    return array.reduce(function(p,n){
        if(!p[n]){
            p[n] = 1;
        }else{
            p[n] += 1
        }
        return p
    },{});
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文