javascript - 根据条件将值添加到对象中的属性
问题描述
有没有更简单的方法来实现下面的代码片段,我有一个基于值选择的对象,我需要将该值添加到一个属性中的一个并将另一个属性设为零。
let obj = {
credit: 0,
debit: 0,
userType: formData.userType.value
};
switch (formData.userType.value) {
case USER_TYPES.NORMAL:
obj = {
...obj,
credit: formData.amount,
};
break;
case USER_TYPES.GREEDY:
obj = {
...obj,
debit: formData.amount,
};
break;
default:
obj = {
...obj,
};
break;
}
console.log(obj)
解决方案
这应该有效:
const propMap = { [USER_TYPES.NORMAL]: 'credit', [USER_TYPES.GREEDY]: 'debit'};
if (propMap[formData.userType.value]) {
obj[propMap[formData.userType.value]] = formData.amount
}
推荐阅读
- java - 同一字段的 @JsonUnwrapped 和 @JsonCreate 会导致问题
- git - 克隆时Git将中文文本添加到xml文件
- javascript - Splash 阻止 JS 执行
- php - 使用 PHP 或 MySQL 在数据库中获得最快的 0-60
- sql - T-SQL:从基于字符串的 SELECT 语句中排除列
- angular - Angular - 去抖动清晰度 vm-ware datagrid clrDgRefresh
- javascript - Сurve 线作为没有地图的两点之间的方向
- javascript - 如何从网页将javascript值加载到python中?
- c - 我们是否必须在 switch 语句之后添加一些东西
- python - 我将 python 3.6.4 更新到 3.7.2_2 并且我所有导入的模块都停止工作