Способ найти сумму всех элементов в нескольких массивах

У меня есть массив, который содержит в себе 9 массивов, в каждом из которых по 3 массива с 3 элементами(всегда числа).

Мне нужно посчитать сумму чисел в одном блоке(один блок - это массив, содержащий в себе 3 массива с 3 элементами в каждом) и, если она равна 45, вернуть true.

Arr=[Массив содержащий 9 блоков]

Один из блоков - [ [5, 3, 4], [6, 7, 2], [1, 9, 8] ] - нужно посчитать сумму элементов в каждом таком блоке, и вернуть true.

Честно, не знаю как понятнее написать, или вставить сюда код, там очень много и без такого описания ничего не будет понятно.


Ответы (1 шт):

Автор решения: EzioMercer
  1. Можно с помощью flat сначала получить одномерный массив, а потом к нему применить reduce, чтобы посчитать сумму и сравнить с нужным значением

    const block = [
      [5, 3, 4],
      [6, 7, 2],
      [1, 9, 8]
    ];
    
    const isSumEqual = (block, value) => {
      return block
              .flat()
              .reduce((sum, num) => sum + num, 0) === value;
    }
    
    console.log(isSumEqual(block, 45));

  2. Можно просто пройтись двойным циклом, посчитать сумму и сравнить с нужным значением

    const block = [
      [5, 3, 4],
      [6, 7, 2],
      [1, 9, 8]
    ];
    
    const isSumEqual = (block, value) => {
      let sum = 0;
      
      for (const row of block) {
        for (const num of row) {
          sum += num;
        }
      }
      
      return sum === value;
    }
    
    console.log(isSumEqual(block, 45));

→ Ссылка