是否可以动态设置 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/