изначально я пытался узнать длину матрицы и исходя из длины ограничиться набором чисел в строке. (было 0 1 1 2 стало 0 1 1). но получается надо складывать первые две строки.
const matrix = [
[0, 1, 1, 2],
[0, 5, 0, 0],
[2, 0, 3, 3],
];
в других тестах [
[1],
[5],
[0],
[2],
]), 6);
и
([
[1, 1, 1],
[2, 2, 2],
[3, 3, 3],
]), 18);
что гуглить-то?
Я вчера тут спрашивал про этот же таск, не пались;) просто ищи выше🤙
Нечего не понятно если честно)
ну блен. я логику понять не могу. транспонировать ее что ли надо
Оказалось что смотря на матрицу, мы не суммируем элементы находящиеся под 0
Покажи задание
а я чет понял это как не суммируем элемы которые МЕНЬШЕ НУЛя
/** * Given matrix, a rectangular matrix of integers, * just add up all the values that don't appear below a "0". * * @param {Array<Array>} matrix * @return {Number} * * @example * matrix = [ * [0, 1, 1, 2], * [0, 5, 0, 0], * [2, 0, 3, 3] * ] * * The result should be 9 */ function getMatrixElementsSum(/* matrix */) { throw new Error('Not implemented'); }
Не меньше нуля а под нулём
const addAllSkipBelowZero = matrix => { let summ = 0 let indeciesToSkip = [] for (let rowIndex in matrix){ for(let colIndex in matrix[rowIndex]){ if(indeciesToSkip.includes(colIndex)) continue const value = matrix[rowIndex][colIndex] if(value === 0) indeciesToSkip.push(colIndex) summ+=value } } return summ }
чет сложно, колонки же независимые, можно просто идти по колонке, пока ноль не встретится, и складывать числа
Ну у меня самый тупой способ. Массив массивов, перебор последовательный
Самый разумный вариант
то есть const numbers = matrix.flat(); const rowSize = numbers[0].length; const sum = numbers.filter((_, index) => numbers[index - rowSize] !=== 0).reduce((a, b) => a + b, 0); и я уже кидал
Да, спасибо. Но не пробовал ещё
Обсуждают сегодня