Javascript 在对象内动态创建对象
2020-11-20
1322
我有一个空对象,想要动态地在对象内部创建一个对象。
const obj = {}
obj["test1"]["test1.1"] = x //initialize to some variable
我收到错误
Uncaught TypeError: Cannot set property 'test1.1' of undefined
我希望输出像这样
obj = {
test1: {
test1.1: x //some variable
}
}
3个回答
如果您所说的 动态 是指属性的名称不确定,则可以使用括号插入动态变量名称:
const arg1 = 'test1';
const arg2 = 'test1.1';
const x = 42;
// assign both variable names dynamically
const obj = { [arg1]: { [arg2]: x } };
console.log(obj);
Hao Wu
2020-11-20
您可以分两步或一步完成此操作
const x = "some var";
const obj = {};
obj["test1"] = {
"test1.1": x
}; // assign the nested object
console.log(obj);
// or
const y = "some var";
const obj1 = { // assign the complete object
test1: {
"test1.1": x
}
};
console.log(obj1);
mplungjan
2020-11-20
您需要初始化
obj["test1"] = {
const obj = {}
obj["test1"] = {}
obj["test1"]["test1.1"] = 'x'
console.log(obj)
对于使用 lodash 库的其他解决方案,您可以使用 set() 方法。
var obj = {}
_.set(obj, ["test1", "test1.1"], 'x');
console.log(obj)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.20/lodash.min.js"></script>
wangdev87
2020-11-20