【发布时间】:2021-07-30 22:49:06
【问题描述】:
我正在准备 JSON 数据以发送 POST 请求。我有一个像['2051','2052] 这样的数组。我想将这两个 ID 传递到 JSON 对象中。这是我需要的 JSON 数据:
var arr =['2051','2052']
var bData = {
"product_id": 2,
"cart_item_data":
{
"wc_bookings_field_duration": 5,
"wc_bookings_field_start_date_year": 2021,
"wc_bookings_field_start_date_month": 05,
"wc_bookings_field_start_date_day": 28,
"wc_bookings_field_start_date_time": 09:00,
"wc_bookings_field_start_date_local_timezone": "",
"add-to-cart": 2,
"start_time": 09:00,
"end_time": 5,
`wc_bookings_field_persons_2051`: 5,
`wc_bookings_field_persons_2052`: 0,
},
}
这是我尝试过的:
var arr =['2051','2052']
var personStr = arr[0].toString()
var childStr = arr[1].toString()
var bData = {
"product_id": 2,
"cart_item_data":
{
"wc_bookings_field_duration": 5,
"wc_bookings_field_start_date_year": 2021,
"wc_bookings_field_start_date_month": 05,
"wc_bookings_field_start_date_day": 28,
"wc_bookings_field_start_date_time": 09:00,
"wc_bookings_field_start_date_local_timezone": "",
"add-to-cart": 2,
"start_time": 09:00,
"end_time": 5,
`wc_bookings_field_persons_${personStr}`: 5,
`wc_bookings_field_persons_${childStr}`: 0,
},
}
但由于某种原因,这会抛出意外的令牌。我在这里做错了什么?此外,数组中的项目数可能更多。然后更多的项目将添加到对象中。
【问题讨论】:
-
您可以使用计算属性名称:
[`wc_bookings_field_persons_${personStr}`]: 5 -
你不能在对象字面量中使用模板字面量作为属性名称,这会抛出
Uncaught SyntaxError: expected property name, got template literal。 -
当我尝试你的方式时,它只显示第一个 field_persons。不知道为什么@NickParsons
标签: javascript