const select = ['0', '0', '4', '0', '1', '4', '1', '1', '4', '0', '0', '4', '0', '0', '4', '0', '1', '4', '0', '0', '4', '0', '4', '0', '4', '4']
const PHQ = [
{
q: 'A',
a: [
{ answer: '0', type: []},
{ answer: '1', type: ['6']},
{ answer: '2', type: ['6']},
{ answer: '3', type: ['6']}
]
},
{
q: 'B',
a: [
{ answer: '0', type: []},
{ answer: '1', type: ['0']},
{ answer: '2', type: ['0']},
{ answer: '3', type: ['0']}
]
}
]
const GAD = [
{
q: 'C',
a: [
{ answer: '0', type: []},
{ answer: '1', type: ['0']},
{ answer: '2', type: ['0']},
{ answer: '3', type: ['0']}
]
},
{
q: 'D',
a: [
{ answer: '0', type: []},
{ answer: '1', type: ['2']},
{ answer: '2', type: ['2']},
{ answer: '3', type: ['2']}
]
}
]
const RSES = [
{
q: 'E',
a: [
{ answer: '0', type: []},
{ answer: '1', type: []},
{ answer: '2', type: []},
{ answer: '3', type: []},
{ answer: '4', type: []}
]
},
{
q: 'F',
a: [
{ answer: '0', type: []},
{ answer: '1', type: []},
{ answer: '2', type: []},
{ answer: '3', type: []},
{ answer: '4', type: []}
]
}
]
const qnaList = [
PHQ[0], GAD[0], RSES[0],
PHQ[1], GAD[1], RSES[1],
PHQ[2], GAD[2], RSES[2],
PHQ[3], GAD[3], RSES[3],
PHQ[4], GAD[4], RSES[4],
PHQ[5], GAD[5], RSES[5],
PHQ[6], GAD[6], RSES[6],
PHQ[7], RSES[7],
PHQ[8], RSES[8],
RSES[9]
]
function GroupingResult(){
for (let i = 0; i < qnaList.length; i++) {
const questionType = i % 3; // classifing questions by index (PHQ= 0, GAD= 1, RSES= 2)
const selectedAnswer = select[i];
switch (questionType) {
case 0:
selectedPHQ.push(selectedAnswer);
break;
case 1:
selectedGAD.push(selectedAnswer);
break;
case 2:
selectedRSES.push(selectedAnswer);
break;
default:
break;
}
}
console.log('selectedPHQ:', selectedPHQ);
console.log('selectedGAD:', selectedGAD);
console.log('selectedRSES:', selectedRSES);
}
GroupingResult();
我不想按索引对问题进行分类。请告诉我如何按名称对问题进行排序。(PHQ、GAD、RSES)
selectedPHQ = [PHQ[0], ... ,PHQ[8]],
selectedGAD = [GAD[0], ... , GAD[6]],
selectedRSES = [RSES[0], ... ,RSES[9]]
我会在“qnaList”中插入更多问题,因此我必须按名称而不是索引对问题进行排序。因为如果我在“qnaList”中添加更多问题,“qnaList”中的所有索引都会更改,因此 selectedPHQ、selectedGAD、seletedRSES 列表也会更改。
我尝试使用索引对数组进行排序,但出错了。由于变量数量(PHQ,GAD,RSES)不同,每个问题的指标没有规律性
从值到保存该值的变量名称没有直接链接。获取“名称”的唯一方法是搜索变量的内容。
const qnaList = [
PHQ[0], GAD[0], RSES[0],
PHQ[1], GAD[1], RSES[1],
PHQ[2], GAD[2], RSES[2],
PHQ[3], GAD[3], RSES[3],
PHQ[4], GAD[4], RSES[4],
PHQ[5], GAD[5], RSES[5],
PHQ[6], GAD[6], RSES[6],
PHQ[7], RSES[7],
PHQ[8], RSES[8],
RSES[9]
]
const selectedPHQ = [];
const selectedGAD = [];
const selectedRSES = [];
function GroupingResult() {
for (let i = 0; i < qnaList.length; i++) {
const selectedAnswer = select[i];
const curQ = qnaList[i];
if (PHQ.includes(curQ)) {
selectedPHQ.push(selectedAnswer);
} else if (GAD.includes(curQ)) {
selectedGAD.push(selectedAnswer);
} else if (RSES.includes(curQ)) {
selectedRSES.push(selectedAnswer);
}
}
console.log('selectedPHQ:', selectedPHQ);
console.log('selectedGAD:', selectedGAD);
console.log('selectedRSES:', selectedRSES);
}
GroupingResult();
<script>
const select = ['0', '0', '4', '0', '1', '4', '1', '1', '4', '0', '0', '4', '0', '0', '4', '0', '1', '4', '0', '0', '4', '0', '4', '0', '4', '4']
const PHQ = [{
q: 'A',
a: [{
answer: '0',
type: []
},
{
answer: '1',
type: ['6']
},
{
answer: '2',
type: ['6']
},
{
answer: '3',
type: ['6']
}
]
},
{
q: 'B',
a: [{
answer: '0',
type: []
},
{
answer: '1',
type: ['0']
},
{
answer: '2',
type: ['0']
},
{
answer: '3',
type: ['0']
}
]
}
]
const GAD = [{
q: 'C',
a: [{
answer: '0',
type: []
},
{
answer: '1',
type: ['0']
},
{
answer: '2',
type: ['0']
},
{
answer: '3',
type: ['0']
}
]
},
{
q: 'D',
a: [{
answer: '0',
type: []
},
{
answer: '1',
type: ['2']
},
{
answer: '2',
type: ['2']
},
{
answer: '3',
type: ['2']
}
]
}
]
const RSES = [{
q: 'E',
a: [{
answer: '0',
type: []
},
{
answer: '1',
type: []
},
{
answer: '2',
type: []
},
{
answer: '3',
type: []
},
{
answer: '4',
type: []
}
]
},
{
q: 'F',
a: [{
answer: '0',
type: []
},
{
answer: '1',
type: []
},
{
answer: '2',
type: []
},
{
answer: '3',
type: []
},
{
answer: '4',
type: []
}
]
}
]
</script>