我需要在javascript中创建一个对象,类似于下面的结构:
{
'1': {
'key1-1': 'val1-1',
'key-1-2': 'val1-2'
},
'2': {
'key1-1': 'val1-1',
'key1-2': 'val1-2'
}
}
我试过 Object();但键仍然是变量的字面名称。
> var myObj = new Object();
> for (var i = 1; i< 5; i++) {
... myObj.i = {'key1-1': 'val1-1',
..... 'key-1-2': 'val1-2'}
... }
> console.log(myObj)
{ i: { 'key1-1': 'val1-1', 'key-1-2': 'val1-2' } }
尝试将变量 i 转换为字符串,但还是一样。
> for (var i = 1; i< 5; i++) {
... var iStr = i.toString();
... myObj.iStr = {'key1-1': 'val1-1',
..... 'key-1-2': 'val1-2'}
... }
> console.log(myObj)
{ iStr: { 'key1-1': 'val1-1', 'key-1-2': 'val1-2' } }
我们如何创建一个带有数字字符串键(如“1”、“2”、“3”...)的 json 对象
最佳答案
您可以将两个嵌套的 for 循环与 template literals 一起使用使它更通用。并使用 bracket notation用于创建动态属性。
let m = 3;
let n =2;
let result = {};
for(let i = 1; i <=m; i++){
result[i] = {};
for(let j = 1; j <=n; j++){
result[i][`key1-${j}`] = `val1-${j}`;
}
}
console.log(result);
关于Javascript:如何使用数字字符串键创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52464773/