Javascript 使用地图过滤,但保留标记
我想过滤然后映射对象的数组,但是当这样做的时候,过滤器会生成一个新的数组并给我不同的索引,可以使用过滤器或者我应该使用另一种方法Javascript 使用地图过滤,但保留标记,javascript,reactjs,ecmascript-6,babeljs,Javascript,Reactjs,Ecmascript 6,Babeljs,我想过滤然后映射对象的数组,但是当这样做的时候,过滤器会生成一个新的数组并给我不同的索引,可以使用过滤器或者我应该使用另一种方法 this.props.todos = [ { task:'Daily meet', status:'incomplete' }, { task:'Play videogame' status:'complete'
this.props.todos = [
{
task:'Daily meet',
status:'incomplete'
},
{
task:'Play videogame'
status:'complete'
}
]
this.props.todos.filter(todos => todos.status === 'complete').map((todos, i) => {
return (<p>{todos.status} - Everythin Ok</p>)
//here i got i = 0
}));
this.props.todos.filter(todos => todos.status === 'incomplete').map((todos, i) => {
return (<p>{todos.status} - You have some task incomplete</p>)
//and here i got i = 0 too i wanna this to be like the original array
}));
this.props.todos=[
{
任务:“每日会议”,
状态:'不完整'
},
{
任务:“玩电子游戏”
状态:'完成'
}
]
this.props.todos.filter(todos=>todos.status==“complete”).map((todos,i)=>{
返回({todos.status}-Everythin Ok)
//这里我得到i=0
}));
this.props.todos.filter(todos=>todos.status===“未完成”).map((todos,i)=>{
return({todos.status}-您有一些任务未完成)
//这里我也得到了i=0,我希望这个像原始数组一样
}));
只需使用map
,无需过滤。您可以按如下方式返回任一组件:
this.props.todos = [
{
task: 'Daily meet',
status: 'incomplete'
},
{
task: 'Play videogame'
status: 'complete'
}
]
this.props.todos.map(todo => {
if (todo.status === 'complete') {
return (<p>{todo.status} - Everythin Ok</p>);
}
if (todo.status === 'incomplete') {
return (<p>{todo.status} - You have some task incomplete</p>);
}
return null;
})
this.props.todos=[
{
任务:“每日会议”,
状态:“未完成”
},
{
任务:“玩电子游戏”
状态:“完成”
}
]
this.props.todos.map(todo=>{
如果(todo.status===“完成”){
返回({todo.status}-EverythinOK);
}
如果(todo.status==“未完成”){
return({todo.status}-您有一些任务未完成);
}
返回null;
})
只需使用map
,无需过滤。您可以按如下方式返回任一组件:
this.props.todos = [
{
task: 'Daily meet',
status: 'incomplete'
},
{
task: 'Play videogame'
status: 'complete'
}
]
this.props.todos.map(todo => {
if (todo.status === 'complete') {
return (<p>{todo.status} - Everythin Ok</p>);
}
if (todo.status === 'incomplete') {
return (<p>{todo.status} - You have some task incomplete</p>);
}
return null;
})
this.props.todos=[
{
任务:“每日会议”,
状态:“未完成”
},
{
任务:“玩电子游戏”
状态:“完成”
}
]
this.props.todos.map(todo=>{
如果(todo.status===“完成”){
返回({todo.status}-EverythinOK);
}
如果(todo.status==“未完成”){
return({todo.status}-您有一些任务未完成);
}
返回null;
})
不要使用过滤器,只需映射
。检查状态,如果是另一个,只需返回null
而不是
。一个数组中有两个元素,看起来需要两个数组,每个数组中有一个元素。如果每个新数组只有一个元素,它怎么会有相同的索引?此外,您没有保存来自筛选器的返回值。它没有进行适当的过滤,因此目前您的代码实际上什么都没有做。不要使用过滤器,只需map
。检查状态,如果是另一个,只需返回null
而不是
。一个数组中有两个元素,看起来需要两个数组,每个数组中有一个元素。如果每个新数组只有一个元素,它怎么会有相同的索引?此外,您没有保存来自筛选器的返回值。它没有进行适当的过滤,所以目前您的代码实际上什么都没有做。