• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Jak porównać dwa array?

Cloud VPS
+1 głos
360 wizyt
pytanie zadane 26 lutego 2021 w JavaScript przez lukasz21 Obywatel (1,090 p.)
zamknięte 2 marca 2021 przez lukasz21

Witam,

 

Chciałbym porównać ze sobą dwie tablice w Javascript. Widziałem kilka wzorów kodu jak można to zrobić, ale nie wiem który z nich jest najlepszy. Dwa zamieszczone niżej wzory wydają mi się najlepsze.

 

Czytałem gdzieś , że metoda z JSON.stringify() nie zawsze zadziała dobrze. Czy są jakieś sytuacje kiedy nie powinno się polegać na tej metodzie i zamiast niej użyć inną?

 

Z góry dziękuje za odpowiedź.

 

Poniżej umieszczam cały kod i codepen

const array1 = ["red", "blue", "green"];
const array2 = ["red", "blue", "green"]; 


// ver 1
let w = JSON.stringify(array1) === JSON.stringify(array2);
document.querySelector('.a').innerHTML = w


// ver 2
function arraysAreIdentical(arr1, arr2) {
                if (arr1.length !== arr2.length) return false;
                for (var i = 0, len = arr1.length; i < len; i++) {
                    if (arr1[i] !== arr2[i]) {
                        return false;
                    }
                }
                return true;
}
document.querySelector('.a1').innerHTML = arraysAreIdentical(array1, array2)

 

komentarz zamknięcia: Odpowiedz w porzadku
komentarz 26 lutego 2021 przez VBService Ekspert (256,600 p.)

A czy taki scenariusz wchodzi w grę  smiley

const array1 = ["blue", "green", "red"];
const array2 = ["green", "red", "blue"]; 

bo bez

array1.sort();
array2.sort();

też zwraca - false;  wink

1 odpowiedź

+1 głos
odpowiedź 26 lutego 2021 przez Wiciorny Ekspert (281,510 p.)

a może tak metoda equals? :) 
 

[1, 2, [3, 4]].equals([1, 2, [3, 2]]) === false;
[1, "2,3"].equals([1, 2, 3]) === false;
[1, 2, [3, 4]].equals([1, 2, [3, 4]]) === true;
[1, 2, 1, 2].equals([1, 2, 1, 2]) === true;

pytanie  co oznacza u Ciebie "takie same tablice" - jeśli potraktujemy je faktycznie jako tablice - to jako struktura kolejność elementów jest ważna i wtedy [1,2,3] -> to nie jest [2,3,1] itd, natomiast jeśli traktujesz tablice jako zbiór to nie ważna jest kolejność elementów i wtedy wystarczy żeby miały te same elementy a nie ważna była kolejność 

komentarz 28 lutego 2021 przez lukasz21 Obywatel (1,090 p.)
W tym przypadku zakładam, że kolejność elementów w obu tablicach jest taka sama.

Podobne pytania

+1 głos
2 odpowiedzi 192 wizyt
pytanie zadane 13 lutego 2021 w JavaScript przez lukasz21 Obywatel (1,090 p.)
0 głosów
1 odpowiedź 271 wizyt
0 głosów
1 odpowiedź 182 wizyt
pytanie zadane 3 czerwca 2019 w JavaScript przez Artek97 Nowicjusz (120 p.)

93,463 zapytań

142,459 odpowiedzi

322,729 komentarzy

62,842 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...