Javascript如何根据创建的月份显示用户数量
Posted
技术标签:
【中文标题】Javascript如何根据创建的月份显示用户数量【英文标题】:Javascript how to display the amount of users based on which month they are created 【发布时间】: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?查看***.com/questions/1960473/unique-values-in-an-array 以获得灵感。 @MarcM 我刚刚尝试遍历数据数组,但我有点卡住了,因为我不知道如何实现这一点。纯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
将返回 null
或 array
。只需查看它的长度即可了解 5 月份创建了多少用户。
usersCreatedInMay.length
您可以遍历所有月份并计算每个月创建了多少用户。
【讨论】:
以上是关于Javascript如何根据创建的月份显示用户数量的主要内容,如果未能解决你的问题,请参考以下文章
6月份运营数据:全网5G套餐用户近5亿,移动成6月份最大的赢家!