我有以下代码:
switch (entityType) {
case "Exam":
entityId = formData.examId;
idColumn = 'examId';
break;
case "Subject":
entityId = formData.subjectId;
idColumn = 'subjectId';
break;
}
重复次数多于此,但我只是在这里显示两个案例值。我相信通过获取entityType的小写并添加Id,可以获取idColumn的值。但有没有办法我可以基于entityType为字段中的formData提取值,而无需多次手动编码。
答案 0 :(得分:3)
您可以用
替换整个 idColumn = entityType.toLowerCase()+'Id';
entityId = formData[idColumn];
我建议你阅读MDN's Working with Objects。
答案 1 :(得分:2)
你可以得到它:
entityId = formData[entityType.toLowerCase()+'Id'];
答案 2 :(得分:1)
当然有!您可以像使用数组一样使用对象:
idColumn = entityType.toLowerCase() + "Id";
entityId = formData[idColumn];
答案 3 :(得分:1)
您可以准备地图,然后直接访问这些字段。
示例:
var map = {
'Exam': 'examId',
'Subject': 'subjectId'
}
if (map[entityType]) {
entityId = formData[map[entityType]];
idColumn = map[entityType];
}
else {
// error handling
}