2

次のコードがあります。

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

これよりも多く繰り返されていますが、ここでは 2 つの大文字と小文字の値を示しています。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 に答える