【发布时间】:2019-08-12 16:53:57
【问题描述】:
let array = this.props.data.allGoogleSheetSpacesRow.edges;
const results = [...array.reduce((r, e) => {
let k = `${e.node.twitter}`;
if(!r.has(k)) r.set(k, {...e, count: 1})
else r.get(k).count++
return r;
}, new Map)]
我正在使用 reduce 来计算数组中重复的 twitter 用户名的数量,以创建如下所示的排行榜:
- 推特用户名:5
- 推特用户名:4
- 推特用户名:2
let leaderboard = results;
console.log(leaderboard);
return (
{leaderboard.map((item, index) => (
<div key={index}>
{item.value.map((c, i) => (
<div key={i}>
<h3>{c.count}</h3>
<h3>{c.node.twitter}</h3>
<hr />
</div>
))}
</div>
))}
)
我正在尝试在地图上进行映射以呈现数据,但我不知道该怎么做。我得到Cannot read property 'map' of undefined。我做错了什么?
所以树似乎去 array --> array --> object 但我不确定我需要做什么来渲染它。
【问题讨论】:
标签: javascript arrays reactjs gatsby array.prototype.map