Komentáře k článku

JavaScript Restart – Hurá na pole

Velkou bolestí JavaScriptu bývalo poměrně málo nativních funkcí pro práci s poli v JavaScriptu, a klávesy “F”, “O” a “R” jsou na klaviaturách našich živitelů značně osahané. Pole je, vzhledem k chudému počtu (2 v ES4) typů použitelných pro vytváření datových struktur, druhým nejužívanějším.

Zpět na článek

28 komentářů k článku JavaScript Restart – Hurá na pole:

      1. Paladin

        Re: Mozkolam
        Vzhledem k tomu, ze tak to bylo i v tom uplne prvnim kodu, tak jsem to povazoval proste za preklep a nevydel za nutne do toho ryt.

    1. Dave

      Re: Mozkolam
      jo, je videt ze si vazne programatorskej buh, dokazal si pochopit i tak slozitou vec, jako je operator precedence …

    2. Peter

      Re: Mozkolam
      Spatne na tom kode je, ze v kazdej iteracii sa zistuje velkost pola co zbytocne spomaluje slucku. ;-)

        1. Peter

          Re: Mozkolam
          Pravdu mas predsedo. Dnes uz si vlastne runtime .length cachuje. Teraz som si vsimol, ++i. Asi uz starnem.

    1. Miroslav JuhosAutor příspěvku

      Re: Typografické uvozovky/apostrofy v kódu?
      To je moje chyba, nevšiml jsem si, že můj markdown konverter je nastaven na psaní uměleckých děl. Sypu si na hlavu.

  1. Martin

    Zkousel jste vubec ten kod?
    Hned na první pohled musí byt jasné že,

    document.querySelectorAll(‘button’).forEach
    

    nebude fungovat a to nejenom kvůli tem uvozovkám, ale hlavně proto že, querySelectorAll nevrací pole, ale NodeList.

    Ani slovo o tom ze for je lehce rychlejší než forEach, nebo co je důležitější, že for můžu přerušit kdežto forEach jak už název napovídá je pro všechny prvky.

    1. Miroslav JuhosAutor příspěvku

      Re: Zkousel jste vubec ten kod?
      Musí tam být ještě konverze na pole, ale pak to není příliš vzor čitelnosti.
      Něco jako tohle:

      ([].slice.call(document.querySelectorAll(‘button’)).forEach
      

      Hanba mě fackuje, tohle mi vážně ujelo.

    2. DavidGrudl

      Re: Zkousel jste vubec ten kod?
      $.each lze přerušit btw taky. Přerušitelný forEach() je vlastně every().

  2. karel

    for
    Takže podle tebe je lepší miliarada callbaku než for cyklus, no poťež koště, víc takových jako ty a už abych si obědnal další ram a pár dalších jader

    1. ivoszz

      Re: for
      I když zápis je formou callbacku, o žádný callback se nejedná, jde o synchronní kód, takže tvá obava je lichá. :)
      BTW, JS jede v jednom vlákně, takže to cos napsal je samozřejmě úplný blábol.

  3. peci1

    reduce
    Funkce reduce neni zadny prapodivny vymysl. Je to jeden ze zakladnich stavebnich kamenu funkcionalniho programovani. To jen, aby si nekdo nemyslel, co to ti standardizatori pridali do Javascriptu za „blbinu“. Naopak – priblizuji ho vic k ciste funkcionalnim jazykum.

  4. tomas.pavlacky

    attachEvent
    Raději bych použil addEventListener.

    [attachEvent is no longer supported. Starting with Internet Explorer 11, use addEventListener. For info, see Compatibility changes.]

      1. alesroubicek

        Re: _
        Nebo Transducers-js, které můžete použít rovnou s jakýmkoliv Array-like kolekcí případně s kolekcí implementujícím ES6 @@iterator. A výhodou je mnohem menší paměťová náročnost a mnohem rychlejší zpracování.

        Stejné benefity získáte i immutabilních kolekcí, které posktuje např. knihovna Immutable.js.

        A když se naučíte používat transducery nad poli, můžete pak rovnou začít pracovat i s event streamy, například pomocí knihovny Kefir.js, která má podpru pro transducery vestavěnou.

          1. mkoubik
            1. stejná operace se dá provádět na libovolné „kolekci“ aniž by vás při implementaci zajímalo co to bude
            2. pokud děláš nšco složitějšího (typu array.map(…).filter(…).reduce(…)) tak se celá opearce provede najednou pro každý prvek a nemusí se zbytečně vytvářet dvě pomocné mezikolekce
            1. mkoubik

              Re:
              2 b. můžeš to tudíž používat na lazy kolekcích (z „pole“ všech přirozených čísel uděláš „pole“ všech prvočísel) aniž by se materializovaly

  5. Snehuliak

    Javascript verzia
    Dobry clanok ale privital by som keby bolo zmienene of ktorejze verzie JS su ktore funkcie podporovane a tiez ci su nejake nekompatibility v browseroch (vratane mobile). Popripade odkaz na shim…

    Dakujem.

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://www.zdrojak.cz/?p=14380