Last active
October 15, 2015 22:35
-
-
Save orafaelfragoso/fa6c0818e5fa9e4ed9aa to your computer and use it in GitHub Desktop.
A function to compare two Arrays
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let compareArrays = (arr1, arr2) => { | |
if (!arr1 || !arr2) | |
return false; | |
if (arr1.length !== arr2.length) | |
return false; | |
for(let i=0; i<arr1.length; i++) { | |
if (arr1[i] instanceof Array && arr2[i] instanceof Array) { | |
if (compareArrays(arr1[i], arr2[i])) | |
return false; | |
} else if (arr1[i] != arr2[i]) { | |
return false; | |
} | |
} | |
return true; | |
} |
@raphamorim Obrigado pelo insight! Realmente, usar JSON.stringify é uma gambiarra sagaz mas eu meio que copiei o código do cara lá e adaptei pra minha necessidade, SEM usar prototype!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Mas essas são as formas rápidas de fazer o trabalho. Porém, uma não é para todos os casos e outra é bem custosa. Existe um right way para equal compare de
Array
, o seu ta bem parecido. Diferenças pequenas no algoritmo pois cada um faz de uma forma diferente (penso eu). No meu caso por já estar usando ES6 e esse código vai ser transpilado anyway (e provávelmente deve estar sendo minificado) usaria o Map ou forEach por estética mesmo.Sugestão: http://stackoverflow.com/questions/7837456/how-to-compare-arrays-in-javascript?answertab=votes#tab-top (sem fazer prototype do Array pelo amor de Deus hehe)