Manipulação de elementos em JavaScript

Vamos fazer algo com os elementos do array que estamos iterando, por exemplo, adicionar o sinal '!' ao final de cada um. Neste caso, teremos que usar um loop for comum, e não for-of, assim:

javascriptfunction func(arr) {
  for (let i = 0; i < arr.length; i++) {
    if (typeof arr[i] == 'object') {
      arr[i] = func(arr[i]);
    } else {
      arr[i] = arr[i] + '!';
    }
  }
  
  return arr;
}

console.log(func([1, [2, 7, 8], [3, 4, [5, 6]]]));
Задание 1

Dado um array multidimensional com nível arbitrário de aninhamento, por exemplo, como este:

javascript[1, [2, 7, 8], [3, 4], [5, [6, 7]]]

Eleve ao quadrado todos os elementos numéricos deste array.