【发布时间】:2018-04-19 20:36:13
【问题描述】:
我有一个名为 users 的数组,其中包含一个对象,如下所示:
'user': {
'name': name,
'msg': msg
}
有可能在该数组中,一个用户被多次列出。
我想统计他所有消息的长度(msg)。
我是这样尝试的:
score = [];
for (i of users) {
for (s of score) {
if (s.name === i.user.name) {
score.push({
'name': i.user.name,
'counter': i.user.msg.length
});
}
else {
s.counter = s.counter + i.user.msg.length;
}
}
}
还包含一个对象的数组score 应该只包含唯一用户。所以它们不应该被列出两次。
无论如何,这不起作用,我对我的代码不是很满意,因为必须有更好、更简单的解决方案。
【问题讨论】:
-
显示你的预期输出
-
如果数组 score 有唯一用户,为什么不先将其转换为一个带有 users.unique_id 或 users.name(如果名称唯一)的字典?那么只需要循环array=users就可以得到你想要的结果。
标签: javascript