includes() pozwala nam sprawdzić, czy element Y znajduje się w tablicy, np.:
constzbior=[1,2,3,4,5,6,7];constwynik=zbior.includes(3);console.log(wynik);// true, 3 znajduje się w zbiorze liczb
includes() porównuje obiekty przez referencje, świetnie sprawdzi się w prostych typach, ale przy obiektach może nie zadziałać zgodnie z oczekiwaniem, np.:
constbogurodzica={name:'Bogurodzica'};constsongs=[bogurodzica,{name:'Cicha noc'},{name:'Lulajże'}];constwynik=songs.includes({name:'Bogurodzica'});console.log(wynik);// false, jest to inny obiektconstwynikRef=songs.includes(bogurodzica);console.log(wynikRef);// true
Rozwiązaniem tego problemu jest użycie funkcji some(fn). Iteruje ona po elementach i sprawdza warunek (fn) podany dla konkretnego elementu. Funkcja zwróci true, gdy dowolny element spełni warunek lub false, gdy żaden element nie pasuje do warunku, np.:
constsongs=[{name:'Bogurodzica'},{name:'Cicha noc'},{name:'Lulajże'}];constwynik=songs.some((song)=>song.name==='Bogurodzica');console.log(wynik);// trueconstbrak=songs.some((song)=>song.name==='Master of puppets');console.log(brak);// false