Javascript:如何使用数字字符串键创建对象

标签 javascript

我需要在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/

相关文章:

javascript - 如果没有鼠标点击事件,我如何对 onClick 进行单元测试?

javascript - 在 Vue.js 中初始化具体化元素

javascript - 实现点赞功能时出现问题。函数只运行一次

javascript - 我只能在每次重新加载数据时选择数据表的行

javascript - 当其他 DIV 被移除时,动态创建的 DIV 不保持位置

javascript - 使用 jQuery 在容器下单击事件

javascript - 最好使用绑定(bind)在 Aurelia 中动态切换图标

javascript - 如何使用索引设置项目的属性?

javascript - promise 回调中的单元测试逻辑

javascript - Angular - 在 *ngFor 中的最后一个元素上调用函数