javascript - 如何避免在使用 Object.entries 迭代键值对时将“键”作为参数传递给映射、减少或过滤?
问题描述
我正在按照这个问题的答案来过滤 JS 中的键值对。
我有一个键值对对象。我正在尝试做这样的事情
{
Object.entries(this.state.passengers)
.filter(([key, passenger]) => passenger.flightNumber === this.props.flightNumber)
.map(([key, passenger]) => {
return (
<tr key = {key}>
//...JSX code
)
})
}
我在控制台中收到未使用密钥的警告。我没有找到正确的语法来避免将键作为参数传递给过滤方法。不过,我想将密钥传递给后续的 map 方法。请帮忙。我是 JS 新手。
解决方案
您在这里有几个选项,最简单的可能是忽略解构赋值中的第一个数组值,这样一开始key
就不会在.map()
回调中定义:
.map(([, passenger]) => {
此外,另一种方法可能是使用Object.keys()
,然后通过以下方式获取值key
:
Object.keys(this.state.passengers)
.filter(key => this.state.passengers[key].flightNumber === this.props.flightNumber)
.map(key => {
return (
<tr key = {key}>
//...JSX code
)
})
推荐阅读
- c# - 在窗体类中单击按钮后如何执行加载项类中的代码?
- algorithm - 找到最小数 N 的算法以将堆栈的值划分为 X 子集中的总和小于 N
- c# - 与 bot framefork 进行群聊的常用列表
- sequelize.js - Sequelize:如果插入包含不在数据库中的字段的记录会发生什么
- python - 如何用 pandas 将数据帧向前填充四次
- python - 如何获取只有搜索字段的应用程序的数据库
- hybris - 何时在 Hybris 中使用 getViewForPage
- d3.js - D3JS - 第二个键的值未定义
- little-man-computer - LMC 程序(使用分支)将值存储在不同位置
- git - Git rebase 冲突:许多文件在本地删除,并在远程修改。如何“git rm”所有这些?