Итак, у меня есть набор данных, скажем ...
{'action': 'tweet', 'user': 'loser', 'message': 'fooboo'}
{'action': 'follow', 'user': 'loser', 'message': null }
{'action': 'tweet', 'user': 'loser', 'message': 'hello'}
{'action': 'retweet', 'user': 'loser', 'message': null}
{'action': 'tweet', 'user': 'michael', 'message': 'CIA is watching'}
{'action': 'tweet', 'user': 'michael', 'message': 'HEHEHEHE'}
{'action': 'follow', 'user': 'michael', 'message': null }
, и я пытаюсь выполнить итерацию по нему, используя команду Reduce, и возвращает список пользователей со счетом всех их действий, так чтопример
{ loser:
{
tweets: 2
retweets: 1
follows: 1
}
}, michael:
{
tweets: 2
retweets: 0
follows: 1
}
}
Вот мой код ...
let userCount = tweets.reduce(function(users, line, idx) {
users[line['users']] = users[line['user']] || [];
let action = line['action];
users[line.user].push({
action: users[line.user].action + 1 || 0
})
return users
}, {users: []});
Мой код не успешно подсчитывает или вводит имена действий в качестве ключа к объекту.Вот как выглядят мои выходные данные.
{ michael: [ { action: 1 } ],
loser: [ { action: 1 }, { action: 1 }, { action: 1 } ],
}