フィールド名に変数を使用したい

お世話になっております。よろしくお願いいたします。

更新時のデータのフィールド名が変数扱いされず困っております。

 

function product_buy_company_put(data,company_id,day_item_name,company_id_item){
var getDate=new Date();
var year = getDate.getFullYear();
var month = getDate.getMonth()+1;
var day = getDate.getDate();

var body = {
“app”: 5,
“id”: data[‘$id’][‘value’],
“record”: {
day_item_name: {
“value”: year+“-”+month+“-”+day
},
company_id_item: {
“value”: company_id
}
}
};

console.log(body);

kintone.api(kintone.api.url(‘/k/v1/record’, true), ‘PUT’, body, function(resp) {
// success
console.log(resp);
}, function(error) {
// error
console.log(error);
});

}

 

day_item_nameとcompany_id_itemが変数として扱いたいのですが

console.logで見ると以下のようになってしまいます。

  1. {app: 1, id: “1”, record: {…}}

  2. app: 1

  3. id: “1”

  4. record:

1. company\_id\_item: {value: "1234"}
2. day\_item\_name: {value: "2019-1-30"}
3. \_\_proto\_\_: Object
  1. __proto__: Object

 

変数扱いできるのであればその方法をお教えいただけますと幸いです。

よろしくお願いいたします。

Chromeであれば、JSON内のday_item_nameを[day_item_name]に書き換えれば変数として扱われます。
参考記事はこちら:Javascript の連想配列で key に変数を使うと展開されない件のメモ

しかし、IEの場合上記の方法が使えないので、下記のようにする必要があります。

var body = {
"app": 5,
"id": data['$id']['value'],
"record": {
day_item_name: {
"value": year+"-"+month+"-"+day
},
company_id_item: {
"value": company_id
}
}
};
↓以下に書き換える
var body = {
"app": 5,
"id": data['$id']['value'],
"record": {}
};
body.record[day_item_name] = {
"value": year+"-"+month+"-"+day
};
body.record[company_id_item] = {
"value": company_id
};

ありがとうございます!

参考にさせていただき下記で解決ができました!

 

 

function product_buy_company_put(data,company_id,day_item_name,company_id_item){
var getDate=new Date();
var year = getDate.getFullYear();
var month = getDate.getMonth()+1;
var day = getDate.getDate();

var put_record = {};
put_record[day_item_name] = {
“value”: year+“-”+month+“-”+day
}
put_record[company_id_item] = {
“value”: company_id
}

var body = {
“app”: 5,
“id”: data[‘$id’][‘value’],
“record”: put_record
};

kintone.api(kintone.api.url(‘/k/v1/record’, true), ‘PUT’, body, function(resp) {
// success
console.log(“success:” +resp);
}, function(error) {
// error
console.log(error);
});

}