Алгоритм для получения суммы произведений с исключением i-го элемента

8 апреля, 2017
1 минута чтения

Листинг

function sum(array) {
  if(!Array.isArray(array)) throw new Error('Argument must be an Array')

  let _sum = 0;
  rec(0, array);

  function rec(index, array) {
    if(!array) return;
    if(index === array.length) return;

    const mulVal = array.filter((_, i) => {
      return i !== index;
    }).reduce((pre, nex) => {
      return pre * nex;
    });

    _sum += mulVal;
    rec(++index, array);
  }

  return _sum;
}

Тест

sum([1, 2, 3, 4]); // 50

Денис Сергеевич Басковский

Философ, изобретатель и поэт.

Добавить комментарий Отменить ответ

js cases
Предыдущая статья

Преобразуем underscore_case в camelCase и в camel-Case-To-Dash

polymer canvas
Следующая статья

Polymer 2 Shadow Canvas

Exit mobile version