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
而不是
。一个数组中有两个元素,看起来需要两个数组,每个数组中有一个元素。如果每个新数组只有一个元素,它怎么会有相同的索引?此外,您没有保存来自筛选器的返回值。它没有进行适当的过滤,所以目前您的代码实际上什么都没有做。