• 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?

Object Storage Arubacloud
+1 głos
284 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 (252,740 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 (269,710 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 135 wizyt
pytanie zadane 13 lutego 2021 w JavaScript przez lukasz21 Obywatel (1,090 p.)
0 głosów
1 odpowiedź 148 wizyt
0 głosów
1 odpowiedź 130 wizyt
pytanie zadane 3 czerwca 2019 w JavaScript przez Artek97 Nowicjusz (120 p.)

92,552 zapytań

141,399 odpowiedzi

319,534 komentarzy

61,938 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...