Javascript 在ReactJs中循环通过数组
我试图循环遍历数组并呈现元素中的数据。我正在使用ReactJs 我的数据阵列:Javascript 在ReactJs中循环通过数组,javascript,arrays,loops,for-loop,reactjs,Javascript,Arrays,Loops,For Loop,Reactjs,我试图循环遍历数组并呈现元素中的数据。我正在使用ReactJs 我的数据阵列: var data = [{ type: "Academic", time: "2015 - 2016", title: " MSc Software Engineering", place: "University of Oxford", description: "Lorem impsum", gallery: [ {url:
var data = [{
type: "Academic",
time: "2015 - 2016",
title: " MSc Software Engineering",
place: "University of Oxford",
description: "Lorem impsum",
gallery: [
{url: "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-ash2/v/t1.0-1/p160x160/10923196_10204583699694173_6145976884213630323_n.jpg?oh=bd235908314ecf0ab5afa8d3f92f5abf&oe=567B51F9&__gda__=1450897067_285c7c8c720c0f130453b37e9ff9b2f8"}
]
}
应将数据推送到的数组:
var events = []
循环:
我不是一个真正的JS专业人士,所以我可能做得不对。你知道这里怎么了吗?非常感谢也许可以试试:
for (var i = 0; i < data.length; i++) {
var directions;
if (data[i] % 2 == 0) {
directions = "direction-r";
} else {
directions = "direction-l"
}
events.push(
<li>
<TimelineEvent type={data[i].type}
time = {data[i].time}
title = {data[i].title}
place = {data[i].place}
description = {data[i].description}
direction = {directions}/>
</li>
)
}
for(变量i=0;i
)
}
另外,除了可以使用循环或for循环之外,您还应该做一件事,即更改代码行
if (data[i] % 2 == 0)
如果(i%2==0),则它应该是
,因为data[i]
将从数据
数组返回对象它已经得到了回答,但是如果您想尝试一些功能代码:
var events = data.map(function (datum, index) {
var directions = 'direction-';
directions += index % 2 === 0 ? 'r' : 'l';
return (
<li>
<TimelineEvent
type={datum.type}
time={datum.time}
title={datum.title}
place={datum.place}
description={datum.description}
direction={directions}
>
{ datum.gallery.map(function (link) {
return (
<a href="#">
<img
className="timelineGalleryImage"
src={link.url} />
</a>
);
} }
<TimelineEvent />
</li>
);
})
var事件=data.map(函数(数据、索引){
变量方向='方向-';
方向+=索引%2==0?'r':'l';
返回(
{datum.gallery.map(函数(链接)){
返回(
);
} }
);
})
谢谢,这似乎奏效了。但是部分:if(data[i]%2==0){directions=“direction-r”}else{directions=“direction-l”}似乎没有任何影响。它是应该的吗?@kostbone上面的答案将修复该部分感谢gcedo,使用这种方法代码看起来更干净。我得到错误:TypeError:无法读取未定义的属性“map”。并且,您是否可以解释我如何在库中迭代:[]对于每个事件?我试图将其显示为存在第一个错误,因为数据未定义,请在该点之前检查。我已更新了答案,我试图了解您想要实现的目标。
for (var i = 0; i < data.length; i++) {
var directions;
if (data[i] % 2 == 0) {
directions = "direction-r";
} else {
directions = "direction-l"
}
events.push(
<li>
<TimelineEvent type={data[i].type}
time = {data[i].time}
title = {data[i].title}
place = {data[i].place}
description = {data[i].description}
direction = {directions}/>
</li>
)
}
if (data[i] % 2 == 0)
var events = data.map(function (datum, index) {
var directions = 'direction-';
directions += index % 2 === 0 ? 'r' : 'l';
return (
<li>
<TimelineEvent
type={datum.type}
time={datum.time}
title={datum.title}
place={datum.place}
description={datum.description}
direction={directions}
>
{ datum.gallery.map(function (link) {
return (
<a href="#">
<img
className="timelineGalleryImage"
src={link.url} />
</a>
);
} }
<TimelineEvent />
</li>
);
})