javascript - 使用 map 过滤但保留索引

标签 javascript reactjs ecmascript-6 babeljs

我想过滤然后映射对象数组,但是什么时候过滤器会创建一个新数组并给我不同的索引,可以使用过滤器来完成此操作,还是应该使用其他方式。

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

最佳答案

直接使用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;
})

关于javascript - 使用 map 过滤但保留索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51181808/

相关文章:

javascript - 在 javascript 中缓存闭包

javascript - 将 xml 加载到 div 时的 AJAX 竞争条件

javascript - 在 Microsoft Ajax 中,$find 究竟做了什么?

javascript - 如何清除 react 中动态表单的输入值

javascript - 在 React 中将文本分成多行

reactjs - 使用下一个 js 链接到目标 ="_blank"

javascript - 在分析 JavaScript 时如何忽略像 jQuery 这样的库?

javascript - 在 React 中将带有参数的函数传递给孙子时出错

Javascript 递归 promise

javascript - 普通函数或箭头函数能否以递归方式从其主体调用自身?