2 pole stejné hodnoty nejsou v JS stejná.

Ahoj kluci, dnes budu diskutovat o velmi malé věci, které jste si možná nevšimli v Javascriptu.
Ukážu vám to na příkladu.

Příklad 1 -

let array1= [1,5,9,14,17];
let array2= [1,5,9,14,17];

console.log(array1 == array2);
console.log(array1 === array2);

Dokážete odhadnout, jaký bude výstup?

Výstup -

false
false
  • Vrátilo to false v obou srovnáních, i když hodnoty jsou stejné, počet prvků je také stejný, tak proč vrátil false? protože vše v javascriptu je objekt a pole jsou také objekty, proto místo porovnávání hodnot nebo počtu prvků kontroluje reference těchto polí, které se liší, a proto v obou případech vrátilo hodnotu false.

Příklad 2 -

let array1= [1,5,9,14,17];
let array2= [1,5,9,14,17];
let array3 = array1
console.log(array3 === array1);
console.log(array3 === array2);

Uhodnete nyní, jaký bude výstup?

Výstup -

true
false
  • Důvodem, proč se při porovnávání pole3 a pole1 vrátila hodnota true, je ten, že jsme uložili referenci pole1 do pole3, takže oba ukazují na stejnou referenci, zatímco porovnání pole3 a pole2 vrátilo hodnotu false, protože mají různé reference.

Jak potom můžete tato pole porovnat?

Odpověď je jednoduchá, pomocí metody toString převeďte pole na řetězce a poté je porovnejte

Příklad 3-

let array1= [1,5,9,14,17];
let array2= [1,5,9,14,17];
console.log(array1.toString() === array2.toString());

Výstup -

true
  • Teď tedy porovnává hodnoty řetězců, které jsou stejné, proto se tentokrát vrátila jako true.

Vypadá to docela matoucí a snažil jsem se co nejlépe vysvětlit, a pokud najdete nějaký bod špatně, opravte jej v sekci komentářů.

DĚKUJI ZA KONTROLA TOHOTO PŘÍSPĚVKU
^^Můžete mi pomoci nějakým darem na odkazu níže Děkuji👇👇 ^^
☕ --> https://www.buymeacoffee.com/waaduheck <--

Zkontrolujte také tyto příspěvky
https://dev.to/shubhamtiwari909/javascript-map-with-filter-2jgo

https://dev.to/shubhamtiwari909/e-quotes-3bng

https://dev.to/shubhamtiwari909/deploy-react-app-on-netlify-kl