【问题标题】:Javascript how to display the amount of users based on which month they are createdJavascript如何根据创建的月份显示用户数量
【发布时间】:2017-10-29 14:50:02
【问题描述】:

我想根据创建的月份显示用户数量。我得到以下数据作为示例:

[ 
  { name: 'user1', created: 'may' },
  { name: 'user2', created: 'may' },
  { name: 'user3', created: 'may' },
  { name: 'user4', created: 'may' },
  { name: 'user5', created: 'june' },
  { name: 'user6', created: 'june' },
  { name: 'user7', created: 'august' },
  { name: 'user8', created: 'august' },
  { name: 'user9', created: 'august' } 
]

我想要实现的是像这样显示它们:

may: 4
june: 2
august: 3

我该怎么做?

【问题讨论】:

  • 到目前为止你尝试过什么? ...需要纯 JavaScript? ...或者可以使用外部库,例如 JQuery?查看stackoverflow.com/questions/1960473/unique-values-in-an-array 以获得灵感。
  • @MarcM 我刚刚尝试遍历数据数组,但我有点卡住了,因为我不知道如何实现这一点。纯javascript将受到青睐。 :-) 我只需要知道如何...

标签: javascript


【解决方案1】:

这是您可以使用的纯 javascript 代码:-

var monthWithUsercount = {};

for (var i = 0; i < a.length; i++) {
    var num = a[i];
    monthWithUsercount[num.created] = monthWithUsercount[num.created] ? monthWithUsercount[num.created]+1 : 1;
}
//Here "a" is the array consisting months and users.

console.log(monthWithUsercount);

这是工作小提琴 - https://jsfiddle.net/sajalsuraj/7nychnd2/

干杯!!

【讨论】:

    【解决方案2】:

    你可以尝试这个方向的东西,代码可能无法工作,因为它没有经过测试。

    function extract(month, data) {
           return let result = data.filter((res)=>{
            return res.created === month;
        })
    

    【讨论】:

      【解决方案3】:

      您可以使用reduce() 并返回对象作为结果。

      var data = [{"name":"user1","created":"may"},{"name":"user2","created":"may"},{"name":"user3","created":"may"},{"name":"user4","created":"may"},{"name":"user5","created":"june"},{"name":"user6","created":"june"},{"name":"user7","created":"august"},{"name":"user8","created":"august"},{"name":"user9","created":"august"}]
      
      var result = data.reduce(function(r, e) {
        return r[e.created] = (r[e.created] || 0) + 1, r
      }, {})
      
      console.log(result)

      【讨论】:

      • 这太棒了! :-)
      【解决方案4】:

      我想这会给你一个想法:

      const usersCreatedInMay = users.filter(u => u.created == 'may')
      

      usersCreatedInMay 将返回 nullarray。只需查看它的长度即可了解 5 月份创建了多少用户。

      usersCreatedInMay.length
      

      您可以遍历所有月份并计算每个月创建了多少用户。

      【讨论】:

        猜你喜欢
        • 2019-07-03
        • 2019-09-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-02
        • 2016-11-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多