当名称在Javascript中动态更改时,如何从字段名称中获取数据?

时间:2013-05-04 15:17:32

标签: javascript

我有以下代码:

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

重复次数多于此,但我只是在这里显示两个案例值。我相信通过获取entityType的小写并添加Id,可以获取idColumn的值。但有没有办法我可以基于entityType为字段中的formData提取值,而无需多次手动编码。

4 个答案:

答案 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
}