【js】统计数组中某些项的个数

方法一:

复制代码
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript">
            var arr = [
                {
                    group:"user",
                    id:"2642ba0e_20da_fd20_7a99_97faebde4c57",
                    title:"lisaWeb",
                    tooltip:"",
                },
                {
                    group:"department",
                    id:"2642ba0e_20da_fd20_7a99_97faebde4c57",
                    title:"lisaWeb",
                    tooltip:"",
                },
                {
                    group:"user",
                    id:"2642ba0e_20da_fd20_7a99_97faebde4c57",
                    title:"lisaWeb",
                    tooltip:"",
                },
                {
                    group:"user",
                    id:"2642ba0e_20da_fd20_7a99_97faebde4c57",
                    title:"lisaWeb",
                    tooltip:"",
                },
            ];
            var json = {
                'user':0,
                'department':0,
                'label':0,
                'post':0
            }
            for(var i = 0 ; i < arr.length; i++){
                for(key in json){
                    if(arr[i].group == key){
                        json[key]++
                    }
                }
            }
            console.log(json);//{user: 3, department: 1, label: 0, post: 0}
        </script>
    </head>
    <body>
    </body>
</html>
复制代码

 方法二:利用reduce

复制代码
var json = {
    'user':0,
    'department':0,
    'label':0,
    'post':0
}
var temp = arr.reduce((pre,cur)=>{
    if(cur.group in pre){
        pre[cur.group] ++;
    } else {
        pre[cur.group] = 1;
    }
    return pre;
},json)
console.log(temp);
复制代码

 

 

 

posted on   smile轉角  阅读(5729)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通

导航

统计

点击右上角即可分享
微信分享提示