// Если первый аргумент, a, имеет тип boolean, то:
// Если он true, вернуть строку, в которую подставлен параметр b:
// 'Переданное GIF-изображение анимировано и содержит [b] кадров'
// Если он false, то вернуть строку:
// 'Переданное GIF-изображение не анимировано'
//
// Если первый аргумент имеет числовой тип, то вернуть строку:
// 'Переданное SVG-изображение содержит [a] объектов и [b * 4] аттрибутов'
//
// Если первый аргумент массив, то вернуть строку:
// 'Количество красных точек во всех строчках изображения: [sum]'
// где [sum] — это сумма значений переданного массива
//
// Если оба аргумента массивы, то вернуть строку:
// 'Общая площадь артефактов сжатия: [square] пикселей'
// где [square] — это сумма произведений соответствующих элементов массивов a и b,
// cумма произведения первого элемента a с первым элементом b, второго со вторым и так далее
function getMessage(a, b) {
// Если первый аргумент, a, имеет тип boolean, то:
if (typeof a === 'boolean') {
// Если он true, вернуть строку, в которую подставлен параметр b:
if (a === true) {
return 'Переданное GIF-изображение анимировано и содержит ' + b + ' кадров';
}
// Если он false, то вернуть строку:
if (a === false) {
return 'Переданное GIF-изображение не анимировано';
}
}
// Если первый аргумент имеет числовой тип, то вернуть строку:
if (typeof a === 'number') {
return 'Переданное SVG-изображение содержит ' + a + ' объектов и ' + b * 4 +' аттрибутов';
}
// Если первый аргумент массив, то вернуть строку:
if (Array.isArray(a)) {
// где sum — это сумма значений переданного массива
var sum = a.reduce(function(start, item) { return start + item; }, 0);
return 'Количество красных точек во всех строчках изображения: ' + sum;
}
// Если оба аргумента массивы, то вернуть строку:
if (Array.isArray(a) && Array.isArray(b)) {
var square = 0;
for (var i = 0; i < a.length && i < b.length; i++) {
// square — это сумма произведений соответствующих элементов массивов a и b
square = square + a[i] * b[i];
}
return 'Общая площадь артефактов сжатия: ' + square + ' пикселей';
}
}