编辑:我正在与Angular进行调查。在这个项目中,问题将被动态添加,答案模型将被提供给问题。 例如,"多重选择,纯文本,星级"
由于问题的数量和回复的数量是动态的,我还给出了#34;输入名称"动态。发布表单时创建的对象如下所示。
我有这样一个对象。
{
"title": "anket başlığı",
"sms": "sms mesajı",
"question-1": "bu birinci soru",
"answer-1": "1",
"question-2": "bu ikinci soru",
"answer-2": "6",
"answers-2-1": "cevap 1",
"answers-2-2": "cevap 2",
"answers-2-4": "cevap 4",
"question-4": "soru 4",
"answer-4": "7",
"answers-4-5": "qwe1",
"answers-4-6": "qwe2",
"answers-4-7": "qwe3",
"question-5": "soru 5",
"answer-5": "6",
"answers-5-10": "ccc3",
"answers-5-11": "ccc4"
}
在这个对象"问题1"是第一个问题"答案-1"是第一个问题的答案类型。 "问题-2"是第二个问题"答案-2"是第二个问题的答案类型和"答案2-1,答案-2-2,答案-2-4和#34;是第二个问题的答案。
我想动态地塑造"问题-1,问题2,问题4,问题5"在这个对象中。
编辑:我需要将此对象带到以下结构以发送Web服务。
{
"title": "anket başlığı",
"sms": "sms mesajı",
"questions" : [
{
"question": "bu birinci soru",
"answer_model_id": "1",
"answers": []
},
{
"question": "bu ikinci soru",
"answer_model_id": "6",
"answers": [
{
"answers": "cevap 1"
},
{
"answers": "cevap 2"
},
{
"answers": "cevap 4"
}
]
},
{
"question": "soru 4",
"answer_model_id": "7",
"answers": [
{
"answers": "qwe1"
},
{
"answers": "qwe2"
},
{
"answers": "qwe3"
}
]
},
{
"question": "soru 5",
"answer_model_id": "6",
"answers": [
{
"answers": "ccc3"
},
{
"answers": "ccc4"
}
]
}
]
}
编辑2:我用变量保留问题的数量。我知道我需要通过使用此变量设置循环来完成此操作。但是问题首先是问题2,4问题问题5"我不知道如何分辨。
答案 0 :(得分:0)
您可以使用对象作为具有相同索引的问题的引用。对于给定键的分配,您可以拆分键并通过检查键来分配值。
var data = { "title": "anket başlığı", "sms": "sms mesajı", "question-1": "bu birinci soru", "answer-1": "1", "question-2": "bu ikinci soru", "answer-2": "6", "answers-2-1": "cevap 1", "answers-2-2": "cevap 2", "answers-2-4": "cevap 4", "question-4": "soru 4", "answer-4": "7", "answers-4-5": "qwe1", "answers-4-6": "qwe2", "answers-4-7": "qwe3", "question-5": "soru 5", "answer-5": "6", "answers-5-10": "ccc3", "answers-5-11": "ccc4" },
reference = {};
data.questions = [];
Object.keys(data).forEach(k => {
var [key, index] = k.split('-');
if (!index) {
return;
}
if (!reference[index]) {
data.questions.push(reference[index] = {});
}
if (key === 'question') {
reference[index].question = data[k];
}
if (key === 'answer') {
reference[index].answer_model_id = data[k];
}
if (key === 'answers') {
reference[index].answers = reference[index].answers || [];
reference[index].answers.push({ answers: data[k] });
}
delete data[k];
});
console.log(data);

.as-console-wrapper { max-height: 100% !important; top: 0; }