Задать вопрос
@sw213

Как перемножить два массива?

Есть два массива:

const a = [1, 5, 2]
const b = [15, 22, 24, 10,11,2, 7, 8]

Первый массив - цифра, которая соответствует количеству элементов из второго массива
1 - это один элемент из массива б (то есть 15)
должно быть 15
5 - это пять элементов второго массива 22,24,10,11,2
должно быть 22*24*10*11*2 (116160)
2 - два элемента 7,8
7*8 = 56
и результат этих вычислений пушится в третий массив:

const c = [15, 116160, 56]
  • Вопрос задан
  • 389 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Как перемножить элементы массива:

const mul = arr => arr.reduce((acc, n) => acc * n, 1);

// или

const mul = arr => eval(arr.join('*')) ?? 1;

// или

function mul(arr) {
  let result = 1;

  for (const n of arr) {
    result *= n;
  }

  return result;
}

// или

function mul(arr) {
  let result = 1;

  for (let i = 0; i < arr.length; i++) {
    result = result * arr[i];
  }

  return result;
}

// или

const mul = (arr, i = 0) => i < arr.length ? arr[i] * mul(arr, -~i) : 1;

Бежим по массиву с количествами элементов, получаем из массива с данными подмассивы указанной длины, перемножаем их содержимое:

const result = count.map(function(n) {
  return mul(data.slice(this[0], this[0] += n));
}, [ 0 ]);

Или, если массив с данными больше не понадобится, можно всегда вырезать у него из начала указанное количество элементов:

const result = count.map(n => mul(data.splice(0, n)));
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы