我正在尝试动态创建以下对象
let foo = {
bar: {
data: [1, 2, 3]
}
}
有没有办法纠正这个陈述来达到这个目的?
let property = bar
foo = { [`${property}/data`]: [1, 2, 3] }
答案 0 :(得分:3)
您只能property
获取computed property name并将其余内容作为对象。
var property = 'bar',
foo = { [property]: { data: [1, 2, 3] } };
console.log(foo);

对于双嵌套对象,您也可以将其他数据属性作为变量。
var property0 = 'bar',
property1 = 'data',
foo = { [property0]: { [property1]: [1, 2, 3] } };
console.log(foo);

答案 1 :(得分:1)
[${property}/data]
不会在里面创建嵌套对象。
无论如何,bar
未定义,将引发错误。
使用以下方法:
let property = 'bar';
let foo = { [property]: {
data: [1,2,3],
}
};
console.log(foo);