Corrija o erro: tipos por valor e por referência

Crie uma função que retorne true se dois arrays contiverem valores idênticos e false caso contrário.

Para resolver esta questão, seu amigo escreve o seguinte código:

function checkEquals(arr1, arr2) {
if (arr1 === arr2) {
  return true
 } else {
  return false
 }
}

Mas, ao testar o código, você percebe que algo não está certo. Ao executar o código, o resultado é o seguinte:

checkEquals([1, 2], [1, 3]) ➞ false
// Good so far...

checkEquals([1, 2], [1, 2]) ➞ false
// Yikes! What happened?

Reescreva o código do seu amigo para que ele verifique corretamente se dois arrays são iguais. Para serem iguais, os arrays devem ter os mesmos elementos na mesma ordem. Os testes abaixo devem passar:

Exemplos

checkEquals([1, 2], [1, 3]) ➞ false

checkEquals([1, 2], [1, 2]) ➞ true

checkEquals([4, 5, 6], [4, 5, 6]) ➞ true

checkEquals([4, 7, 6], [4, 5, 6]) ➞ false

checkEquals([4, 7, 6], [4, 6, 7]) ➞ false

Notas

Dica: isso tem a ver com tipos por valor e tipos por referência.