rtivital
1/20/2016 - 4:50 PM

k.js

// Если первый аргумент, 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 + ' пикселей';
  }
}