Фильтр с картой, но сохранить индекс - PullRequest
0 голосов
/ 05 июля 2018

Я хочу отфильтровать, а затем отобразить массив объектов, но когда это сделать, фильтр создает новый массив и дает мне другие индексы, это можно сделать с помощью фильтра, или я должен использовать другой способ.

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
}));

1 Ответ

0 голосов
/ 05 июля 2018

Просто используйте 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;
})
...