Есть функция, которая работает, но неплохо было бы переписать её через свитч кейс.
Но не могу сообразить как быть с проверкой сразу двух параметров? И в примерах ничего не нашел.
Подскажите, плз, как написать хотя бы блок с проверкой на то, что первый аргумент массив, а второй - нет.
function getMessage(a, b) {
if(typeof a === "boolean") {
if(a) {
return "Переданное GIF-изображение анимировано и содержит " + b + " кадров";
} else {
return "Переданное GIF-изображение не анимировано";
}
}
if(typeof a === "number") {
return "Переданное SVG-изображение содержит " + a + " объектов и " + a*4 + " аттрибутов";
}
if(Array.isArray(a) && !Array.isArray(b)) {
var sum = 0;
for (var i=0; i < a.length; i++) {
sum += a[i];
}
return "Количество красных точек во всех строчках изображения: "+sum;
}
if(Array.isArray(a) && Array.isArray(b)) {
var square = 0;
if (a.length <= b.length) {
for (var i=0; i < a.length; i++) {
square += a[i]*b[i];
}
return "Общая площадь артефактов сжатия: " + square + " пикселей";
} else {
for (var i=0; i < b.length; i++) {
square += a[i]*b[i];
}
return "Общая площадь артефактов сжатия: " + square + " пикселей";
}
}
}
console.log(getMessage([1,3,4,5,6,7], [1,4,4,5,6]))