Как получить результат умножения в каждом массиве - PullRequest
0 голосов
/ 08 мая 2018

Эта функция заставляет каждый элемент умножаться на себя и выводит 5040

function multiplyAll(arr) {
    var product = 1;

    for (var a = 0; a < arr.length; a++) {
        for (var b = 0; b < arr[a].length; b++) {
            product *= arr[a][b];
        }
    }
    return product;
}
multiplyAll([[1,2],[3,4],[5,6,7]]);

Я хотел бы функцию, которая отображает умножение элементов в каждом массиве (в этом случае я хотел бы, чтобы функция отображала [[2], [12], [210]]).

Любая помощь, пожалуйста

Ответы [ 4 ]

0 голосов
/ 09 мая 2018

Проверьте это решение

function multiplyAll(arr) {
 return arr.map((inner) => {
    let product = 1;
    for (let i = 0; i < inner.length; i++) {
      product *= inner[i];
    }
    return [product];
  })
}
let product = multiplyAll([[1,2],[3,4],[5,6,7]]);
console.log(product);
0 голосов
/ 08 мая 2018
 function multiplyAll(arr) {
    let products = [];

    for (var a = 0; a < arr.length; a++) {
        let product = 1;
        for (var b = 0; b < arr[a].length; b++) {
            product *= arr[a][b];
        }
        products.push([ product ]);
    }

    return products;
 }

 multiplyAll([[1,2],[3,4],[5,6,7]]);

Просто создайте новый массив и отправьте в него результаты.

0 голосов
/ 08 мая 2018

Извлеките следующий фрагмент, который имеет минимальные изменения по сравнению с вашей исходной программой:

function multiplyAll(arrs) {
    var product = 1;
    var result = [];

    for (var a = 0; a < arrs.length; a++) {
        for (var b = 0; b < arrs[a].length; b++) {
            product *= arrs[a][b];
        }
        result.push(product);
        product=1;
    }
    return result;
}
var product = multiplyAll([[1,2],[3,4],[5,6,7]]);
console.log(product);
0 голосов
/ 08 мая 2018

Вы можете использовать .map() и .reduce() для достижения желаемого эффекта без изменения входных данных:

function multiplyAll (array) {
  return array.map(
    inner => [inner.reduce(
      (product, factor) => product * factor
    )]
  )
}

console.log(multiplyAll([[1,2],[3,4],[5,6,7]]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...