我有一个数组,说
[
{
lesson: 1,
title: "Welcome",
slug: "welcome",
active: active,
breakDay: false,
started_time: new Date(),
finished_time: null,
completed: true,
sublesson: [
{
lesson: 1.1,
title: "Evaluation",
slug: 'evaluation',
completed: false,
answers: []
}
],
answers: []
},
{
lesson: 2,
title: "Example",
slug: "example",
active: active,
breakDay: false,
started_time: null,
finished_time: null,
completed: false,
sublesson: [
{
lesson: 2.1,
title: "example2,
slug: 'example2,
answers: []
}
],
answers: []
}
]
我需要找到一种方法来映射第一个项目以达到特定条件。
我在React App内进行了尝试,但是很快意识到它实际上是在检查那些条件是否在第一项而非整个数组上都成立。
{
lessons !== null ?
lessons.map((item, index, arr) => (
index === 0 && item.active === true ?
<>
<p>{item.title}</p>
</>
:
null
))
:
null
}
因此,从本质上讲,我如何过滤第一个项目,以满足特定条件,例如item.active === true && item.completed === false
?
您可能需要filter
这里:
var data=[ { lesson: 1, title: "Welcome", slug: "welcome", active: 'active', breakDay: false, started_time: new Date(), finished_time: null, completed: true, sublesson: [ { lesson: 1.1, title: "Evaluation", slug: 'evaluation', completed: false, answers: [] } ], answers: [] }, { lesson: 2, title: "Example", slug: "example", active: 'active', breakDay: false, started_time: null, finished_time: null, completed: false, sublesson: [ { lesson: 2.1, title: "example2", slug: 'example2', answers: [] } ], answers: [] }];
var result = data.filter(({active, completed})=> active && !completed);
console.log(result);
或find
获取第一个匹配对象:
var data=[ { lesson: 1, title: "Welcome", slug: "welcome", active: 'active', breakDay: false, started_time: new Date(), finished_time: null, completed: true, sublesson: [ { lesson: 1.1, title: "Evaluation", slug: 'evaluation', completed: false, answers: [] } ], answers: [] }, { lesson: 2, title: "Example", slug: "example", active: 'active', breakDay: false, started_time: null, finished_time: null, completed: false, sublesson: [ { lesson: 2.1, title: "example2", slug: 'example2', answers: [] } ], answers: [] }];
var result = data.find(({active, completed})=> active && !completed);
console.log(result);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句