【问题标题】:Count frequency of array objects by key按键计数数组对象的频率
【发布时间】:2020-09-07 12:07:18
【问题描述】:

我有很多这样的学生:

    var school =[ 
    {
    class: "ss1",
    student: "J. Kent",
    scores: "accurate"
},
{
    class: "ss1",
    student: "P. Ben",
    scores: "accurate"
},
{
    class: "ss3",
    student: "T. Maddison",
    scores: "error"
},
{
    class: "jss1",
    student: "R Briggs",
    scores: "accurate"
},
{
    class: "ss1",
    student: "P. Roberts",
    scores: "accurate"
},
{
    class: "ss1",
    student: "A. Minder",
    scores: "error"
},
{
    class: "ss1",
    student: "C. Trust",
    scores: "accurate"
},

]

我想计算属于 class: "ss1" scores: "accurate" 的某人出现的次数。 我四处寻找图书馆以使这变得容易,但无法获得。 欢迎任何方法或更简单的方法。

【问题讨论】:

    标签: javascript arrays sorting filter


    【解决方案1】:

    您可以使用Array.filter() 过滤值并获取其长度。

    var school=[{class:"ss1",student:"J. Kent",scores:"accurate"},{class:"ss1",student:"P. Ben",scores:"accurate"},{class:"ss3",student:"T. Maddison",scores:"error"},{class:"jss1",student:"R Briggs",scores:"accurate"},{class:"ss1",student:"P. Roberts",scores:"accurate"},{class:"ss1",student:"A. Minder",scores:"error"},{class:"ss1",student:"C. Trust",scores:"accurate"}];
    
    console.log(school.filter(scl => scl.class === 'ss1' && scl.scores === 'accurate').length)

    【讨论】:

      【解决方案2】:

      您可以使用array.filter()

      const school = [
        {
          class: "ss1",
          student: "J. Kent",
          scores: "accurate",
        },
        {
          class: "ss1",
          student: "P. Ben",
          scores: "accurate",
        },
        {
          class: "ss3",
          student: "T. Maddison",
          scores: "error",
        },
        {
          class: "jss1",
          student: "R Briggs",
          scores: "accurate",
        },
        {
          class: "ss1",
          student: "P. Roberts",
          scores: "accurate",
        },
        {
          class: "ss1",
          student: "A. Minder",
          scores: "error",
        },
        {
          class: "ss1",
          student: "C. Trust",
          scores: "accurate",
        },
      ];
      
      
      const getResults = (group, score) => {
        return school.filter((obj) => obj.class === group && obj.scores === score).length;
      }
      
      const result = getResults("ss1", "accurate");
      
      console.log(result);

      array.reduce()

      const school = [
        {
          class: "ss1",
          student: "J. Kent",
          scores: "accurate",
        },
        {
          class: "ss1",
          student: "P. Ben",
          scores: "accurate",
        },
        {
          class: "ss3",
          student: "T. Maddison",
          scores: "error",
        },
        {
          class: "jss1",
          student: "R Briggs",
          scores: "accurate",
        },
        {
          class: "ss1",
          student: "P. Roberts",
          scores: "accurate",
        },
        {
          class: "ss1",
          student: "A. Minder",
          scores: "error",
        },
        {
          class: "ss1",
          student: "C. Trust",
          scores: "accurate",
        },
      ];
      
      
      const getResults = (group, score) => {
        return school.reduce((count, obj) => obj.class === group && obj.scores === score ? ++count : count, 0);
      }
      
      const result = getResults("ss1", "accurate");
      
      console.log(result);

      【讨论】:

        猜你喜欢
        • 2021-04-23
        • 2011-04-19
        • 2019-12-27
        • 2022-11-29
        • 2021-11-19
        • 1970-01-01
        • 2015-11-28
        • 2012-04-19
        • 1970-01-01
        相关资源
        最近更新 更多