我有一个对象,其中包含不同类型的问题multiple
、single
和text
。
const data = {
questions: [
{
"question": "Question 1",
"value": [
"value_1.1.1",
"value_1.1.2"
],
"type": "multiple",
"options": [
{
"value": "value_1.1.1",
"label": "Value 1.1.1"
},
{
"value": "value_1.1.2",
"label": "Value 1.1.2"
},
{
"textValue":"test12",
"value":"value_1.1.3",
"label":"Value 1.1.3",
}
]
},
{
"question": "Question 2",
"value": "value_2.1.1",
"type": "single",
"options": [
{
"value": "value_2.1.1",
"label": "Value 2.1.1"
},
{
"value": "value_2.1.2",
"label": "Value 2.1.2"
},
]
},
{
"question":"Question 3",
"textValue":"Test 12345",
"type":"text"
}
]
}
我想用对象创建一个新的数组,其中包含问题键和值键。
值键必须包含所选选项的标签。对于多重类型,值可以包含多个标签。所选选项可以从父值键中检索,如果它等于选项的值,我希望使用此选项的标签作为值。
在某些情况下,一个选项还包含一个textValue(参见1.1.3),那么这也必须被添加到值中。
因此,对于上面的示例,新数组应如下所示:
const newData = [
{
question: "Question 1",
value: ['Value 1.1.1', 'Value 1.1.2', 'Additional text value']
},
{
question: "Question 2",
value: ['Value 2.1.1']
},
{
question: "Question 3",
value: ['Test 12345']
}
];
1条答案
按热度按时间pgpifvop1#
基本上是循环问题,按自己的类型处理每个问题。棘手的部分是
type: multiple
,但它是可管理的。第一个