【问题标题】:How do I pass array as a key in JavaScript object?如何将数组作为 JavaScript 对象中的键传递?
【发布时间】:2022-09-24 18:34:43
【问题描述】:

我有一个 API 需要在请求正文中使用 specialities[]。问题是我不知道如何在 javascript 中将其作为键传递。

这就是我正在做的事情:

const data = {
      name: name,
      phone: phone,
      email: registerEmail,
      pmc_number: pmcNumber,
      speciality[]: speciality.split(\",\"),
      city: city 
    }

    const {res} = await axios.post(\"api-url\", data);

但是,speciality[] 给出了语法错误。那么,有什么方法可以将数据发送到 API(API 不能更改。我必须从客户端找到解决方案)。谢谢。

  • 键不应该是类型,它应该是标识符。类型可以是您指定的任何类型。 .split() 已经创建了一个数组,所以只需从键名中删除 []。如果 api 要求您在密钥名称中包含 [],则只需引用密钥,使其成为字符串。
  • 在包含特殊字符的对象键周围加上引号。 \"speciality[]\": value

标签: javascript


【解决方案1】:
  1. 'specialities': speciality.split(',') 使用引号而不是名称来描述属性,就像在 JSON 中一样。

    然而,它是不是 通过一个列表/数组。

  2. 数组是字符串化的:例如,String([1,2])=='1,2';。所以String([])=='',在一个字符串或符号类型的属性中,如果你不尝试像 (1.)

【讨论】:

    【解决方案2】:

    您可以在键周围加上引号。

    'specialities[]': speciality.split(","),
    

    【讨论】:

    • close 为清楚起见,看起来 OP 将类型注释与属性名称混淆了。
    • 虽然如果由于某种原因 API 需要 specialties[] 作为密钥,那么这个答案似乎是合适的。如果 OP 对 API 有任何控制权,我强烈建议从密钥中删除 []
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    • 2012-11-25
    • 2012-03-23
    • 2016-07-06
    • 2016-09-06
    • 2016-04-02
    • 2018-02-23
    相关资源
    最近更新 更多