繁体   English   中英

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

[英]How can I get data from a field name when the name changes dynamically in Javascript?

我有以下代码:

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

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

您可以将整个替换为

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

我建议您阅读MDN的“使用对象”

你可以得到它:

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

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

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

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

例:

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

if (map[entityType]) {
    entityId = formData[map[entityType]];
    idColumn = map[entityType]; 
}
else {
    // error handling
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM