使用模板文字为对象数组中的变量赋值?

Assign value to variable from object array with template literals?

我正在尝试根据对象数组值将数据动态分配给变量。 我将展示一个简化的数据结构:

const data = [{"age":25,"name":"Michael"},{"age":20,"name":"Lara"}]
const data2 = [{"age":26,"name":"Sarah"},{"age":21,"name":"David"}]

我想给变量赋值。例如,我知道这行得通:

const arr = 'data'
const zero = '0'
const a = 'age'
const test = `${data[zero][a]}`
console.log(test) // returns 25

但是我可以动态分配它吗(也许是嵌套的模板文字)?

const test = `${arr[zero][a]}`
console.log(test) // does not work, because arr is a string

const test = `${${arr}[zero][a]}`
console.log(test) // does not work

有什么办法可以实现吗? 提前致谢!

编辑:
我仔细考虑了解决方案(尝试使用模板文字)。
为了解决它,感谢来自 ggorlen I changed the way my data was stored. That way, it was way easier to access the data dynamically. The solution was fairly similar to the answer from Sowmen Rahman.

的输入

我太努力思考以特定方式解决问题,而不同的方法更明智!

按照您建议的方式,这样的事情是不可能发生的。字符串本身不能动态转换为变量名,但是如果您将变量存储在字典或映射对象中,则可以使用下标运算符 [] 来完成任务。

const data = [{"age":25,"name":"Michael"},{"age":20,"name":"Lara"}]
const data2 = [{"age":26,"name":"Sarah"},{"age":21,"name":"David"}]

const rootObject = {
  data: data,
  data2: data2
}

const arr = 'data'
const zero = '0'
const a = 'age'
const test = `${rootObject[arr][zero][a]}` 
console.log(test) // outputs 25