первые два элемента выдает undefined в массиве после цикла
Есть массив с вопросами. Оттуда я пытаюсь взять правильные ответы. При цикле массива он возвращяет массив с правильными ответами но первые два элемента undefined. вопрос почему? Если вопросы местами поменять все равно выдает первые два элемента undefined. Вот массив
const arr = [
{
"title": "First test",
"questions": [
{
"description": "Сколько дней составляет «Гарантированный период?",
"alternatives": [
{
"isCorrect": false,
"text": "40"
},
{
"isCorrect": false,
"text": "60"
},
{
"isCorrect": true,
"text": "30"
}
]
},
{
"description": "Сколько дней составляет «Гарантированный период?",
"alternatives": [
{
"isCorrect": false,
"text": "40"
},
{
"isCorrect": false,
"text": "60"
},
{
"isCorrect": true,
"text": "30"
}
]
},
{
"description": "Сколько дней составляет «Гарантированный период?",
"alternatives": [
{
"isCorrect": false,
"text": "40"
},
{
"isCorrect": false,
"text": "60"
},
{
"isCorrect": true,
"text": "30"
}
]
}
],
];
вот код
const getAnswers = (array) => {
let data = array
let arr1 = [];
let arr2 = [''];
for(x in data){
arr1.push(data[x].alternatives);
}
for(y in arr1){
let arr = arr1[y];
arr2 = arr.map((item, index) => {
if(item.isCorrect === true) {
return item.text;
}
})
}
return arr2;
}
console.log(getAnswers(arr[0].questions));
в output вы дает [ undefined, undefined, '30' ]
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
...
let arr2 = [];
for(y in arr1) {
arr2.push(arr1[y].find(item => item.isCorrect).text);
}
return arr2;
const arr = [{
"title": "First test",
"questions": [{
"description": "Сколько дней составляет «Гарантированный период 1?",
"alternatives": [{
"isCorrect": false,
"text": "40"
},
{
"isCorrect": false,
"text": "60"
},
{
"isCorrect": true,
"text": "31"
}
]
},
{
"description": "Сколько дней составляет «Гарантированный период 2?",
"alternatives": [{
"isCorrect": false,
"text": "40"
},
{
"isCorrect": false,
"text": "60"
},
{
"isCorrect": true,
"text": "32"
}
]
},
{
"description": "Сколько дней составляет «Гарантированный период 3?",
"alternatives": [{
"isCorrect": false,
"text": "40"
},
{
"isCorrect": false,
"text": "60"
},
{
"isCorrect": true,
"text": "33"
}
]
}
]
}];
const getAnswers = (array) => {
let data = array
let arr1 = [];
for (x in data) {
arr1.push(data[x].alternatives);
}
let arr2 = [];
for (y in arr1) {
arr2.push(arr1[y].find(item => item.isCorrect).text);
}
return arr2;
}
console.log(getAnswers(arr[0].questions));