【问题标题】:Telling .map to skip over an object告诉 .map 跳过一个对象
【发布时间】:2020-09-12 16:05:35
【问题描述】:

在下面的代码中映射了一个名为allTodosuseState。它使用这些数据来渲染多个组件:

let todoComponents = allTodos.map(item => <Todos key={item.id} item={item} handleChange={handleChange}/>)

问题是.map 需要在具有唯一名称的对象内访问对象中的id

我如何告诉.map 跳过该对象,无论其名称如何,并获取id(其他任何其他值)。

【问题讨论】:

  • 您可以在地图回调中返回 null 或使用 filter() 但并不清楚您的条件是什么。解释有点循环,可以使用更多细节来澄清
  • 过滤数据然后做映射
  • 也许是Object.keys(allTodos[0]).map(id =&gt; allTodos[id])?
  • @charlietfl 条件:需要返回id的值。但是,我正在尝试将函数指向从何处获取此值。就像在 HTML 中可以使用 "./../whatever" 来告诉程序获取 "whatever.js" 的文件,而不管它的位置。
  • 这似乎与“跳过地图()”完全不同。也还是有点混乱

标签: javascript arrays object array.prototype.map


【解决方案1】:

过滤然后映射

allTodos.filter(i=> !i.completed).map(...)

【讨论】:

  • 我应该添加(...) 代码还是缩短?
  • 是的,就是这个代码:item =&gt; &lt;Todos key={item.id} item={item} handleChange={handleChange}/&gt;
  • 查看第一个示例:{m8CpkuPCNu0_Eajituu: {completed: fals..}。我试图返回一个从内部删除数据的数组。它应该返回 {completed: fals..}
猜你喜欢
  • 2019-07-03
  • 1970-01-01
  • 2014-07-23
  • 1970-01-01
  • 1970-01-01
  • 2016-05-26
  • 2015-11-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多