我正在尝试找出如何实现这项工作:
var emails = $("#register_Email").val();
var split = emails.split("@");
var username = split[0];
var first = $("#register_FirstName").val();
var last = $("#register_LastName").val();
var phone = $("#register_PhoneNumber").val();
ref2.set({
username: {
active: true,
email: emails,
first_name: first,
last_name: last,
phone: phone,
role: "technician"
}
});
我可以获得所有变量,但问题是我想将其传递到 set() 方法中,如上所示。整个节点的名称应该是用户名的值,而不是用户名一词。
我尝试过以这种方式使用文字:
ref2.set({
[username]: {
active: true,
email: emails,
first_name: first,
last_name: last,
phone: phone,
role: "technician"
}
});
但这行不通。它只是崩溃说我无法将 [
或 ]
作为变量名传递。
最佳答案
无法使用对象字面量来做到这一点。但您可以记住 foo.bar
相当于 foo['bar']
,并改为这样写:
var opts = {};
opts[username] = {
active: true,
email: emails,
first_name: first,
last_name: last,
phone: phone,
role: "technician"
};
ref2.set(opts);
关于javascript - JSON 中对象文字的另一种形式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35762240/