我需要使用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对象?
答案 0 :(得分:1)
您可以将两个嵌套的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);
答案 1 :(得分:0)
将myObj.istr更改为myObj [istr]
答案 2 :(得分:0)