遍历对象数组并将每个对象映射到单个模板对象

时间:2020-04-18 22:54:48

标签: javascript json reactjs

我有两组数据,其中一组的格式如下:

    title: "Test Json",
    showProgressBar: "top",
    showQuestionNumbers: "off",
    pages: [
        {
            questions: [
                {
                    type: "",
                    name: "",
                    title: "",
                    hasOther: true,
                    isRequired: true,
                    colCount: 4,
                    choices: []
                }
            ]
        }
    ]
};

另一种格式如下:

{Answers: "“18-24”, “25-50”, “50+”",
​
Question: "How old are you?",
​
QuestionNumber: "1",
​
isRequired: "TRUE",
​
type: "radiogroup"}

第二组数据是这些对象的多个,我正在使用forEach循环进行遍历,如下所示:

data.forEach((data, i)=>{
     console.log(data)
// returns above object x3 
})

我想做的是使用第一个对象,并使用第二个对象的值将值映射到questions数组,例如,questions[0].type将被映射到data.type

我设法找出将一个对象映射到模板的方法:

data.forEach((data, i)=>{
     console.log(data)
     questions[0].type = data.type
     questions[0].name = data.Question
     questions[0].title = data.Question
     questions[0].choices = [data.Answers]
})

但这仅映射对象数据数组中的第一个对象,我想基于数据数组中对象的数量基本上创建一个新的模板对象,并创建尽可能多的“已填写的问题模板”在数据数组中

任何指针和帮助都很好<3

1 个答案:

答案 0 :(得分:1)

尝试

data.forEach((data, i)=>{
     console.log(data)
     questions.push([{
      type: data.type
      name: data.Question
      title: data.Question
      choices: [data.Answers]
    }])
})

使用其他问题更新了此答案