我可以根据变量设置 Javascript 对象键吗,例如循环索引?

Can I set Javascript object keys based on a variable, e.g index of a loop?

我在一个数组上循环,每次迭代都从 API 中获取数据。

我想使用 res.json() 将循环的所有迭代中的数据从我的快速服务器传递到浏览器,因此我想创建一个对象,其中包含每个 API 的数据对象调用,以及将根据返回的内容创建的一些其他键值对。

例如
在循环索引 0:

artist0: 
     {
        data: 'data',
        moreData: 'more-data'
     }

在循环索引 1 上:

artist1: 
     {
        data: 'data',
        moreData: 'more-data'
     }

等等

我会使用数组,但其中一个调用(随机)会产生另一个键值对, 例如:

correctAnswer: 'a_url.com' 

这将由较早的 API 调用之一随机生成,因此我无法使用其数组索引在另一端获取它。

我需要密钥 'correctAnswer',所以我还需要 API 数据的每个对象来标识它来自哪个 API 调用。

小问题:我可以根据变量命名键吗?

一如既往,非常感谢您的帮助:-)

你可以通过不将艺术家直接放在对象中来解决这个问题,就像这样,在对象的单个属性中使用数组:

{
    "artists": [
        {
            "data": "data",
            "moreData": "more-data"
        },
        {
            "data": "data",
            "moreData": "more-data"
        }
    ],
    "correctAnswer": 3
}

或者,如果您真的想要一个动态密钥,您可以使用

{
     [`artist${artistIndex}`]: {'data': 'data'}
}

这可能对您有所帮助

https://www.geeksforgeeks.org/how-to-use-a-variable-for-a-key-in-a-javascript-object-literal/#:~:text=ES6%20defines%20'ComputedPropertyName'%20as%20part,an%20expression%20in%20square%20brackets.

“ES6 将‘ComputedPropertyName’定义为对象文字语法的一部分,这有助于使用变量作为键。在 ES6 中,可以通过将表达式放在方括号中来动态分配对象键”