【发布时间】:2017-04-05 14:31:36
【问题描述】:
我有一个如下所示的对象数组:
const artists = [{
date: '1/1/2017',
name: 'Oasis'
},
{
date: '5/1/2017',
name: 'Blur'
},
{
date: '5/1/2017',
name: 'Simply Red'
},
{
date: '10/1/2017',
name: 'Ed Sheeran'
},
{
date: '10/1/2017',
name: 'Beyonce'
},
{
date: '15/1/2017',
name: 'Jay-z'
},
];
我想遍历artists,如果日期与前一个日期不同,我想在艺术家姓名上方显示该日期。第一位艺术家也应该显示日期。
我的代码看起来像这样,希望能让我的问题更清楚。
render(){
{artists.map((artist, index) =>
{(artists[index].date !== artists[index - 1].date) && (
<p>{ artists[index].date }</p>
)}
<div className="artists" key={index}>
<p>{ artist.name }</p>
</div>
)}
}
【问题讨论】:
-
这是什么问题,它不起作用吗?
-
@MayankShukla 不,不工作。无法读取
date of undefined -
artists[index]date不是有效的 JavaScript。 -
抱歉@Jordan 这是问题中的错字
-
@RaulRodriguez 感谢您接受我的回答。在你这样做之后,我意识到我的代码和你的一样,不会像写的那样工作。我已经用工作 sn-p 中的一些替代代码更新了我的答案。
标签: javascript reactjs ecmascript-6 jsx