javascript - 如何使用动态键访问对象的值?
问题描述
我有这个代码
bodyLength.map((el, i) => {
console.log(`${values.bodyTitleEn2 + i.toString()}`);
body.push({
title: [
{
key: 'en',
value: values.bodyTitleEn + i,
},
{
key: 'ku',
value: values.bodyTitleKu + i,
},
{
key: 'ar',
value: values.bodyTitleAr + i,
},
] ...
values.bodyTitleEn
, Ku
, 并Ar
在它们的末尾有一个数字,这意味着values.bodyTitleEn0
, values.bodyTitleEn1
, values.bodyTitleEn2
,并且我有这个数组bodyLength
,它等于那里有多少个的长度bodyTitle[En]
,所以我试图实现values.bodyTitleEn + i
在末尾动态添加数字,但它说undefined values.bodyTitleEn
,因为bodyTitleEn
对象中永远存在没有它末尾的数字,我怎么能做到这一点谢谢。
解决方案
您可以像这样附加数字:
values[`bodyTitleEn${i}`]
上面的语法将尝试获取键的值bodyTitleEn0
,bodyTitleEn1
...
当您使用 时values.bodyTitleEn + i
,您试图将数字添加到返回的值中,values.bodyTitleEn
但就像您注意到 values 对象没有键一样bodyTitleEn
,即使它有键,这也不是您想要做的。
推荐阅读
- racket - 使用鼠标处理程序显示 x & y 坐标
- git - GitHub 中的问题
- javascript - js扫雷板和排推
- c - 循环 C 中 getchar() 的目的是什么?
- c# - 如何在 Windows 服务中使用 EF Core 迁移?
- javascript - Rails 6 加载 web worker 的方法是什么?
- active-directory - 如何在 Tableau 中全局管理用户权限?
- airflow - 有没有办法抑制从 Airflow 到 Sentry 的某些类型的错误?
- java - 调用 wsdl URL 的 Java 代码连接超时,但使用 SOAP UI 调用相同的 wsdl URL 没有问题
- python - 如何重新采样数据框的特定两行?