如何使用JavaScript在字典中设置键?

d4so4syb  于 2023-03-11  发布在  Java
关注(0)|答案(2)|浏览(99)

我想使用一个变量作为字典中的键。

var uid = "123456";

await admin
          .firestore()
          .collection("shop")
          .doc(shopId)
          .update({
            "role.${uid}": "reader",
          });

但是上面的代码不起作用。
结果就在这里。enter image description here
如何将uid设置为role的密钥?

mrfwxfqh

mrfwxfqh1#

如果我正确理解了您要做的事情,您应该使用模板文字(反引号)而不是常规字符串(双引号)。
例如:

await admin
          .firestore()
          .collection("shop")
          .doc(shopId)
          .update({
            [`role.${uid}`]: "reader",
          });
krugob8w

krugob8w2#

为了在Firestore更新操作中使用uid变量作为动态键,需要在字符串文字两边使用反引号而不是单引号或双引号,并使用字符串插值语法${}将uid变量的值插入到字符串中。

var uid = "123456";

await admin
  .firestore()
  .collection("shop")
  .doc(shopId)
  .update({
    [`role.${uid}`]: "reader",
  });

通过使用反勾号和字符串插值,您可以将uid变量值作为角色字段的动态键包含在字符串文字中。请注意,方括号内的字符串将作为表达式计算,因此uid变量值将插入到结果字符串中。
在这种情况下,同时使用方括号[]和字符串插值法${}是有效的,因为方括号用于定义对象中的动态属性键,而字符串插值法语法${}允许您将变量的值插入字符串。
将字符串文字括在方括号内时,生成的表达式将作为对象属性的键进行计算。通过在方括号内使用${}语法,可以将uid变量的值插入到生成的字符串中。这样,就可以根据uid变量的值动态生成键。

相关问题