javascript - 如何将变量的值传递给 JavaScript 中的不同调用?

标签 javascript arrays firebase

我有一个对象 test,其字段 ab 具有嵌套属性:

test = {a: {key1: 'value1', key2: 'value2', key3: 'value3'},
       {b: {key1: 'value4', key2: 'value5', key3: 'value6'}}

我希望能够更改 ab 内的嵌套值,但要更改的值是可变的。为了清楚起见,我希望能够执行以下操作:

test.$i$.key1: 'value10'

其中 $i$ 指的是 i 所保存的值,在本例中为 ab .

这可能吗?

我知道用括号符号可以很容易地解决这个问题,但这在我的情况下不起作用。

从 firebase 文档复制:

// Create an initial document to update.
var frankDocRef = db.collection("users").doc("frank");
frankDocRef.set({
    name: "Frank",
    favorites: { food: "Pizza", color: "Blue", subject: "recess" },
    age: 12
});

// To update age and favorite color:
db.collection("users").doc("frank").update({
    "age": 13,
    "favorites.color": "Red"
})
.then(function() {
    console.log("Document successfully updated!");
});

我希望能够做到:

const var1 = 'color'
db.collection("users").doc("frank").update({
    "age": 13,
    "favorites.$var1$": "Red"
})

其中 $var1$ 指的是 $va1r$ 所保存的值,在本例中为 foodcolorsubject

括号表示法在这种情况下不起作用,因为我将一个字符串传递给 firebase,它不会像那样解释。

最佳答案

您可以使用括号表示法动态访问对象的属性。

尝试下面的代码:

var test = {
  a: {
    key1: 'value1',
    key2: 'value2',
    key3: 'value3'
  },
  b: {
    key1: 'value4',
    key2: 'value5',
    key3: 'value6'
  }
};

var key = 'a';
console.log(test[key].key1);

关于javascript - 如何将变量的值传递给 JavaScript 中的不同调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59879686/

相关文章:

javascript - 修改这个滚动导航菜单脚本?

java - 为什么java数组文档不显示字段 "length"?

javascript - 如何在云功能中从firestore获取用户的电子邮件?

ios - 用于生产时 Firebase 身份验证电话无法工作

android - 启动器 Activity 不工作的 FirebaseAuthStateListener

php - JS没有执行

javascript - 在 Javascript 中拖放 unicode 的问题

javascript - `new Array(5).map()` 是如何工作的?

c++ - 用多维数组初始化C++多维 vector ?

c++ - 如果在执行期间替换二进制文件, "const"数组是否驻留在内存中?