javascript - 在javascript中有条件地返回一个对象属性
问题描述
所以这可能看起来像一个奇怪的问题,但请耐心等待:
我有一个简单的字符串数组,我想将它映射到一个对象数组。很简单:我会写
arr.map (x => ({
header : x,
sortType: 'basic'
}))
现在,问题来了:我想检查一下 x 是否有某个值,然后根本不包括 sortType。我想做类似的事情
arr.map (x => ({
header : x,
x==='test' ? (sortType: 'basic') : //don't provide anything
}))
所以我希望我的最终数组是这样的: 而且我当然不想有两张地图!
[
{ header: 'Header One' , sortType: 'basic'},
{ header: 'test' },
{ header: 'Another one' , sortType: 'basic'},
]
解决方案
您可以将两个对象与条件运算符一起使用。
arr.map(header => header === 'test'
? { header }
: { header, sortType: 'basic' }
)
arr.map(header => Object.assign({ header }, header !== 'test' && { sortType: 'basic' }))
推荐阅读
- mysql - 在 MySQL 中将 GenerationType.SEQUENCE 与 Hibernate 一起使用是个好主意吗?
- vb.net - 如何确定一个变量是否大于Visual Basic中的2个其他变量
- agda - 在 Agda 中,我如何证明在 uncons over coinductive list(aka Stream)之后的 cons 是身份?
- python-3.x - 在 Pandas 数据框中定义递归函数
- python - Jupyter Lab 交互式图像显示:使用 HBox 的小部件排列问题
- javascript - 刷新页面后LocalStorage不显示todolist数组
- python - 尝试使用python中的dll
- amazon-web-services - 使用带有 aws-cdk 的令牌更新资产文件
- java - Spring Security,PasswordEncoder 的问题
- f# - let vs member 用于私有函数,在 F#