javascript - 如何动态创建javascript对象?

标签 javascript

是否可以动态设置 javascript 对象?

我是这样创建对象的:

let data = {a: {b: 'value'}};

但我需要这样创建它:

let data ['a'] ['b'] = 'value';

对象创建将在循环中动态发生。这就是为什么我需要第二种方式。

最佳答案

在 Javascript 中不能,因为 [] 运算符不能在 JavaScript 中覆盖。

如果你使用ruby,你可以通过以下方式。

class MyHash < Hash
  def [](key)
    if has_key? key
      super
    else
      self[key] = self.class.new
    end
  end
end
my_hash = MyHash.new

my_hash[1][2][3] = "a"

puts my_hash
=> {1=>{2=>{3=>"a"}}}

这可以通过“[]”运算符覆盖来完成。 JavaScript 不支持“[]”运算符覆盖。

How would you overload the [] operator in javascript

那你应该

lat data = {}
data[a] = data[a] ? data[a] : {}
data[a][b] = "value"

关于javascript - 如何动态创建javascript对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59113939/

相关文章:

javascript - 在 html 文本框或输入框中键入卡纳达语

javascript - 使用 PHP 一周后重置 HightChart

javascript - 如何在 Javascript/Jquery 中删除选定的文件

javascript - 停止元素上的更多事件处理程序

javascript - Angular 2 - 如何在 init 上预填充 3 个表单组

javascript - 如何在方法链中间设置断点

javascript - CoffeeScript 理解

javascript - 每 2 行更改一次,而不是每个表行更改一次

javascript - 通过交互更新凹坑多系列图表中的系列顺序

javascript - 是否有任何等效于 javascript 的 dbug(*真正*漂亮的 vars 打印)?