Вывести все неверные значения в alert
Наверное это легко, но я затроил на этом. Есть функция, в ней считаются верные ответы, выводится их количество, а потом нужно вывести ошибки, например: Правильных ответов 2, неправильные ответы 3, 4, 5.
var vern = 0;
var a = document.getElementById("img1").style.left;
a = parseInt(a);
if (a > 530 && a < 650) {vern++}
var b = document.getElementById("img2").style.left;
b = parseInt(b);
if (b > 1370 && b < 1500) {vern++}
var c = document.getElementById("img3").style.left;
c = parseInt(c);
if (c > 1080 && c < 1220) {vern++}
var d = document.getElementById("img4").style.left;
d = parseInt(d);
if (d > 245 && d < 375) {vern++}
var e = document.getElementById("img5").style.left;
e = parseInt(e);
if (e > 810 && e < 940) {vern++}
alert("Правильных ответов: " + vern + ". " + "Ошибки в картинках под номером: ");
}
Ответы (1 шт):
Автор решения: teran
→ Ссылка
Гооврят, если для множества однотипных действий писать универсальный код, а не копировать кучу строк, то жизнь разработчика становится проще.
let items = [
{ id: 'img1', min: 530, max: 650 },
{ id: 'img2', min: 1370, max: 1500 },
{ id: 'img3', min: 1080, max: 1220 },
{ id: 'img4', min: 245, max: 375 },
{ id: 'img5', min: 810, max: 940 },
];
let result = items.reduce(function(acc,v, idx){
let img = document.getElementById(v.id);
let l = parseInt(img.style.left);
if(l > v.min && l < v.max) acc.count++;
else acc.wrong.push(idx);
return acc;
}, { wrong: [], count: 0 });
console.log(result);