Как найти самый большой индекс вложенных массивов в массив?

Есть задача, нужно найти самый большой индекс вложенных массивов в массив. Но я что-то делаю не то, не получается вывести. Целый день мучаю, но никак.

При нажатии .b-9 выполняете функцию f9. Функция должна выводить в out-9 самый большой индекс вложенных массивов в массив a9. В данном случае это 4.

let a9 = [
  [4, 3, 2, 5],
  [2, 5, 4],
  [0, 0, 0, 0, 0]
];

function f9() {
  out = '';

  let num = a9[0];

  for (let key in a9) {

    for (let i in a9[key]) {

      if (a9[key][i] > num.length)
        num = [i];
    }
  }
  out = num;

  document.querySelector('.out-9').innerHTML = out;
}

document.querySelector('.b-9').addEventListener('click', f9);
<section>
  <button class="button-primary b-9">Task-9</button>
  <div class="out-9"></div>
</section>


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

Автор решения: entithat

Пример с map():

Math.max(...a9.map(e => e.length)) - 1

Либо просто:

let a9 = [
  [4, 3, 2, 5],
  [2, 5, 4],
  [0, 0, 0, 0, 0]
];

var max = a9[0].length;
for (let e of a9) {
  max = max < e.length ? e.length : max;
}

console.log(max - 1);

→ Ссылка
Автор решения: Sk MAIL
let a9 = [[4, 3, 2], [2, 5], [0, 0, 0, 0, 0]];

function f9() {
    let max = 0;

    for (let i = 0; i < a9.length; i++) {
        let maxIndex = a9[i].length - 1;
        if (maxIndex > max) {
            max = maxIndex}
    }
    return max
}

document.querySelector('.b-9').addEventListener('click', () => {
    document.querySelector('.out-9').innerHTML = f9();
});
→ Ссылка