为什么我的对象键值对被覆盖而不是创建新的键值对?

雅各布·韦斯特

我正在尝试使用动态创建的键,值对在对象内创建对象的对象,但是嵌套的对象会不断覆盖键值对,而不是创建新的键值对。

ObjectIDWithQuestions = {};
var ArrayOfBlocks1 = [
  {
    ID: "block1",
    block: "block1",
    BlockElements: [
      { QuestionID: "1"  },
      { QuestionID: "2"  }
    ]
  },
  {
    ID: "block2",
    block: "block2",
    BlockElements: [
      {  QuestionID: "1"  },
      {  QuestionID: "2"  }
    ]
  },
  {
    ID: "block3",
    block: "block3",
    BlockElements: [
      {  QuestionID: "1"  },
      {  QuestionID: "2"  }
    ]
      }
];

for(i=0;i<ArrayOfBlocks1.length;i++){
    for(k=0;k<ArrayOfBlocks1[i].BlockElements.length;k++){
        var ArrayOfBlocks2 = ArrayOfBlocks1[i].ID
        ObjectIDWithQuestions[ArrayOfBlocks2]={}
        ObjectIDWithQuestions[""+ArrayOfBlocks2]["questions"+ k]=ArrayOfBlocks1[i].BlockElements[k].QuestionID

    }
}
console.log(ObjectIDWithQuestions);

该代码的预期结果是创建一个对象,该对象是具有两个动态创建的键值对而不是被覆盖的一个键值对的对象的对象,例如,打印以下代码:

block1: {questions1: "2"}
block2: {questions1: "2"}
block3: {questions1: "2"}

什么时候应该打印

block1: {questions0: "1",questions1:"2"}
block2: {questions0: "1",questions1:"2"}
block3: {questions0: "1",questions1:"2"}
Vineesh

你应该初始化

var ArrayOfBlocks2 = ArrayOfBlocks1[i].ID
ObjectIDWithQuestions[ArrayOfBlocks2]={}

在内循环之外。否则,每次内部循环迭代时,它将创建一个对象

ObjectIDWithQuestions = {};
var ArrayOfBlocks1 = [
  {
    ID: "block1",
    block: "block1",
    BlockElements: [
      { QuestionID: "1"  },
      { QuestionID: "2"  }
    ]
  },
  {
    ID: "block2",
    block: "block2",
    BlockElements: [
      {  QuestionID: "1"  },
      {  QuestionID: "2"  }
    ]
  },
  {
    ID: "block3",
    block: "block3",
    BlockElements: [
      {  QuestionID: "1"  },
      {  QuestionID: "2"  }
    ]
      }
];

for(i=0;i<ArrayOfBlocks1.length;i++){
     var ArrayOfBlocks2 = ArrayOfBlocks1[i].ID
     ObjectIDWithQuestions[ArrayOfBlocks2]={}
     for(k=0;k<ArrayOfBlocks1[i].BlockElements.length;k++){  
        ObjectIDWithQuestions[""+ArrayOfBlocks2]["questions"+ k]=ArrayOfBlocks1[i].BlockElements[k].QuestionID

     }
}
console.log(ObjectIDWithQuestions);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么我不能在基于promise的嵌套数组对象中分配新的键值?

为什么我的对象在C ++中被覆盖?

为什么要更新所有词典键值而不是仅更新我指定的键值?

为什么python会覆盖键值对

为什么我的数组被覆盖Java

为什么我的变量被覆盖?

为什么我的Firebase文档被覆盖?

为什么我的HashMap条目被覆盖?

为什么我的文件输出被覆盖?

为什么我的数组被覆盖?

为什么“ yield”不会覆盖PHP中的键值对?

为什么我不能在关联数组中添加新的键值对?

为什么之前的对象数组条目会被覆盖?

为什么在函数中创建的结构会被覆盖?

为什么我的局部变量没有被覆盖?

SharedPreferences:为什么我的值不被覆盖?

为什么我的共享首选项值被覆盖?

为什么我的状态迭代会被覆盖?

为什么我的 Python 字典总是被覆盖

为什么我的本地状态被覆盖?反应

为什么我的将键值和增量值添加到对象数组的函数返回未定义

为什么我们必须创建一个新对象“输入”而不是直接使用 Scanner.nextLine() ?

为什么代码覆盖率报告说我的图书馆没有被覆盖?

为什么循环会覆盖初始代码,而不是创建新的 XSSFSheet?

什么是键值对?

如何在不创建新对象的情况下在 jsonb 中添加新的键值对?(Postgres)

Javascript从此数组追加对象并创建带有附加对象键值对的新数组

在Ruby中将每个键值对创建为新对象时,如何为对象分配哈希值

在对象数组和对象中插入新的键值对,但值由axios.get创建