更新するフィールドコード名をハードコーディングでなく変数の中身を展開して変えたい

// 以下のようなAPIソースで更新するフィールドコード名を
// 変えて更新したい処理があります。


// getFCFunc(x,y)は条件によってフィールドコード名を返す共通関数
var a_FieldName = getFCFunc(x,y);

var requestParams = {
requests: [
{
method: ‘PUT’,
api: ‘/k/v1/record.json’,
payload: {
app: zaikoAppId,
id: recordId,
revision: recordRevision,
record: {
a_FieldName: { ★ここのIE11での指定方法が知りたいです
value: newHikiateNum
}
}
}
}
]
};

Chomeの場合、[a_FieldName]でちゃんと変数展開でき、目的のフィールドコードが更新されましたが、IE11だとエラーとなりJSファイル自体が読み込まれません。

IE11を使った場合、どう指定すればよいかご存知の方、教えていただけませんか?

ChromeでできてIEでうまくいかないといったものはブラウザの機能サポート範囲が異なるからですが、今回はES6に起因するもので、該当機能のMDNを見ていただくとわかるかと思いますが、ES6以前では一発で指定することはできないので、本質は同じですがいずれかの記法になります。後者はTipsでもよく見かける記法です。

 

var requestParams = {

requests: [

{

method:“PUT”,

api:“/k/v1/record.json”,

payload: {

app:zaikoAppId,

id:recordId,

revision:recordRevision,

record: {}

}

}

]

};

requestParams.requests[0].payload.record[a_FieldName] = {

value:newHikiateNum

};

// もしくは

var postRecord = {};

postRecord[a_FieldName] = {

value:newHikiateNum

};

var requestParams = {

requests: [

{

method:“PUT”,

api:“/k/v1/record.json”,

payload: {

app:zaikoAppId,

id:recordId,

revision:recordRevision,

record:postRecord

}

}

]

};

ご回答ありがとうございました。

上記、教えていただいた記述でIE11でも実現できました。