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

HackNation - ogólnopolski hackathon
+1 głos
422 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 (282,580 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 239 wizyt
pytanie zadane 13 lutego 2021 w JavaScript przez lukasz21 Obywatel (1,090 p.)
0 głosów
1 odpowiedź 364 wizyt
0 głosów
1 odpowiedź 220 wizyt
pytanie zadane 3 czerwca 2019 w JavaScript przez Artek97 Nowicjusz (120 p.)

93,628 zapytań

142,551 odpowiedzi

323,052 komentarzy

63,134 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 1936p. - dia-Chann
  2. 1916p. - DziarnowskiJ
  3. 1886p. - Łukasz Piwowar
  4. 1841p. - raydeal
  5. 1840p. - Adrian Wieprzkowicz
  6. 1782p. - rucin93
  7. 1754p. - CC PL
  8. 1729p. - Maurycy W
  9. 1701p. - rafalszastok
  10. 1588p. - Tomasz Bielak
  11. 1521p. - Michal Drewniak
  12. 1491p. - Rafał Trójniak
  13. 1444p. - robwarsz
  14. 1257p. - ssynowiec
  15. 1208p. - Mariusz Fornal
Szczegóły i pełne wyniki

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
...