javascript - JSON 中对象文字的另一种形式?

标签 javascript jquery json firebase

我正在尝试找出如何实现这项工作:

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"
    }
});

但这行不通。它只是崩溃说我无法将 [] 作为变量名传递。

enter image description here

最佳答案

无法使用对象字面量来做到这一点。但您可以记住 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/

相关文章:

javascript - 使用javascript转义字符

javascript - 根据相同的属性合并对象列表中的值

javascript - Mailchimp API 出错,无法使用 ajax 成功

jquery - Owl Carousel - 主题 css 不适用

javascript - 如何获取 json 对象中的属性值

javascript - 如何防止默认和禁用 href

javascript - 切换内容链接

javascript - 确定 html 标签的内容何时更改

c# - 使用多个文件发布 StreamContent

php - 如何将此文本数据存储在数组中?