@erwit: przykładowo sobie odpaliłem podobny kod(bez parse) w 100tys iteracji dla jakiejś 20 elementowej tablicy i pierwotny kod wykonuje się w 3 ms, a ten z slicem i somem w 195 ms xD @MKu8ar: @Marmite:
@Jurigag: Podbijam jednym przebiegiem pętli mniej:
return JSON.parse(members).slice(0, 2).some(function(member) { return member.socket === socket.id; }) W twoim nalezałoby dodatkowo na końcu zrobić !== -1 EDIT: jak odpisywałem, to tego nie było (✌ ゚ ∀ ゚)☞
@erwit: cóż, wyjściowe rozwiązanie o ile parse przesuniesz do zmiennej będzie z 4 razy szybsze niż return JSON.parse(members).slice(0, 2).some(function(member) { return member.socket === socket.id; }) dla małych tablic/liczby powtórzeń, jak będziesz robił taki kod w pętli/dla dużych tablic to różnica będzie gigantyczna na korzysć pierowtnego rozwiązania
@Marmite: @bmFyY3l6bWFu: @Jojne_Zimmerman: ale czy jak sobie przeparsuje raz, to to nie zostanie gdzies w cache'u ? Sorry za noobskie pytanie nie ogarniam event loop i internalsow js'owych
@Marmite: dopisałem w zasadzie bo zapomniałem, no i zapomniałem o !== xd w sensie indexOf = dodatkowa pętla a u ciebie brak ? w sumie twój kod wygląda spoko xd taki kod to cała kwintesencja JS'a, zamiast robić coś "normalnie" i po najmniejszej linii oporu powinniśmy właśnie stosować takie coś
Cześć Mirki i Mirabelki spod tagów #programowanie #technologia #cyberbezpieczenstwo #it! Halloween to czas duchów, potworów i strasznych historii. Ale umówmy się – niektóre rzeczy są znacznie bardziej przerażające niż nawiedzony dom. Wystarczy podejrzany link, przejęte konto, wyciek danych albo wiadomość, po której robi się naprawdę gorąco ( ಠ_ಠ)
Komentarz usunięty przez autora
return JSON.parse(members).slice(0, 2).some(function(member) { return member.socket === socket.id; })W twoim nalezałoby dodatkowo na końcu zrobić
!== -1EDIT: jak odpisywałem, to tego nie było (✌ ゚ ∀ ゚)☞return JSON.parse(members).slice(0, 2).some(function(member) { return member.socket === socket.id; })dla małych tablic/liczby powtórzeń, jak będziesz robił taki kod w pętli/dla dużych tablic to różnica będzie gigantyczna na korzysć pierowtnego rozwiązania@Jojne_Zimmerman: no ja tez wlasnie nie bardzo :(
var whatever = JSON.parse(members);return JSON.parse(members).slice(0,2).map(function(e) { return e.socket; }).indexOf(socket.id) != -1;? ( ͡° ʖ̯ ͡°) @erwit:const checkRoom = (members) => JSON.parse(members).slice(0, 2).some((member) => member.socket === socket.id)edit: moze to od @MKu8ar: troche mnie potwornie :)