2

我有以下代码:

            switch (entityType) {
                case "Exam":
                    entityId = formData.examId;
                    idColumn = 'examId';
                    break;
                case "Subject":
                    entityId = formData.subjectId;
                    idColumn = 'subjectId';
                    break;
            }

它比这重复的次数更多,但我在这里只显示两个案例值。我相信可以通过获取 entityType 的小写字母并添加 Id 来获取 idColumn 的值。但是有没有一种方法可以根据 entityType 为字段提取 formData 中的值,而无需手动编写很多次代码。

4

4 回答 4

3

您可以将整个替换为

  idColumn = entityType.toLowerCase()+'Id';
  entityId = formData[idColumn];

我建议你阅读MDN 的 Working with Objects

于 2013-05-04T15:19:47.493 回答
2

你可以得到它:

entityId = formData[entityType.toLowerCase()+'Id'];
于 2013-05-04T15:20:30.590 回答
1

当然有!您可以像使用数组一样使用对象:

idColumn = entityType.toLowerCase() + "Id";
entityId = formData[idColumn];
于 2013-05-04T15:21:26.277 回答
1

您可以准备一张地图,然后直接访问这些字段。

例子:

var map = {
    'Exam': 'examId',
    'Subject': 'subjectId'
}

if (map[entityType]) {
    entityId = formData[map[entityType]];
    idColumn = map[entityType]; 
}
else {
    // error handling
}
于 2013-05-04T15:21:36.873 回答