Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Sziasztok,

    Valaki segítsen nekem megérteni JS-ben ez a .reduce() miért /hogyan működik:

    const users = [
      { name: 'John', age: 34 },
      { name: 'Amy', age: 20 },
      { name: 'camperCat', age: 10 }
    ];

    const usersObj = users.reduce((obj, user) => {
      obj[user.name] = user.age;
      return obj;
    }, {});
    console.log(usersObj);

    Pontosabban ez a része az amit nem bírok felfogni: obj[user.name] = user.age

    Ebből hogy jön ki a { John: 34, Amy: 20, camperCat: 10 } eredmény? o.O
    Elsőre én azt hinném, hogy mikor a reduce végig lépdel az objecteken a name-nek adná értékül az age értékét.

    Szóval miért nem {name: 34} az első lépés eredménye.
    Tudom, hogy én lenni buta, de az agyam nem képes ezt most felfogni. :( :(

    Talán igy érthetobb:

    const usersObj = users.reduce((obj, user) => {
    return {
    ...obj, // lemásolod az obj tartalmat
    [user.name]: user.age // 1. elemnel "John" 34, 2. elemnél "Amy": 20 stb.
    }
    }, {});

  • Üdv.

    Van nekem ez :

    <br>
    <select id="slc1">
      <option value="opr*">opr*</option>
      <option value="kif1" selected>kif1</option>
    <option value="kif2" id="slc13">kif2</option>
      <option value="kif3">kif3</option>
    </select>
     
    <select id="slc2">
      <option value="érték*">érték*</option>
      <option value="tar00">tar00</option>
      <option value="tar01" selected>tar01</option>
      <option value="tar02">tar02</option>
    </select>
     
    <select id="slc3">
      <option value="záje*">záje*</option>
      <option value="( )" selected>( )</option>
      <option value="; °;">; °;</option>
    </select>
     
    <select id="slc4">
      <option value="alak*">alak*</option>
      <option value="mini">mini</option>
      <option value="maxi" selected>maxi</option>
      <option value="sp.1">sp.1</option>
    </select>

    Ha ezt írom JavaScriptben, akkor jól megy :
    alert(slc13.value)
    , de csúnya .
    :((

    A kérdésem az, hogy hogyan kellene valahogyan(?) emígy írni:
    alert(slc1.izé(3).value)
    :F

    Kotorásztam a https://www.w3schools.com/js/js_htmldom.asp -ban, de nem találtam !

    Pl. nem id-val hivatkozol rá, hanem kiválasztod az összes selectet és veszed a 3. elemét.

    const selectElems = document.querySelectorAll('select')
    console.log(selectElems[2].value)

    Szerintem a te példádban id-val sokkal olvashatóbb. :D

  • Az a tény, hogy ezt idehánytad ahelyett, hogy ész érvekkel próbálnád meggyőzni a másikat (ahogyan én is tettem), hogy miért nincs neki igaza, az csak téged minősít.

    MontyBoa:
    "A konkrét rendszerhez írt könyvtárakat én nem nevezném keretrendszernek.
    A keretrendszer lényege pont az lenne, hogy általánosan használható...
    "

    Vegyük alapul a Webprogramozást, ha már úgyis témánál vagyunk. Adott egy Webfejlesztő, aki saját vállalkozásként űzi ezt a tevékenységet és több megrendelője is akad. Szerintem, amennyiben van egy saját, jól kidolgozott, stabil és működőképes rendszere, akkor azt fogja újra és újra eladni, a megrendelő által meghatározott változtatásokkal egyetemben. A változtatások nem feltétlen, sőt, esetek jelentős részében nem befolyásolja a már meglévő alap rendszert, sokkal inkább külcsínre megy.
    Így én azt gondolom, hogy keretrendszernek nevezhető, mert ugyan azt használja újra és újra, több projekthez, mindeközben mégsem használja több projekthez, hanem végsősoron ugyan ahhoz, csak más köntösben. Ezért is fog jól működni.

    Azt teljes mértékben megértem, hogy ami(k)ről itt szó van, az pont egy olyan dolog, ami az autóktól a repülőkig mindenhez IS passzol. De én mindössze erre reflektáltam annyit, hogy éppen emiatt lesz megbízhatatlan és instabil.

    Brozoo:
    "A JS keretrendszerek + libek nagyrészének mérete kb-ben mérhető. Szinte észrevehetetlen kódnövekedést okoz a használatuk."

    Természetesen ez így igaz, nem is vitatom. Csak látszik, hogy nagyon XXI. századiként gondolkodtok. Annak idején (C64 és társai korszak) ezek a plusz kb-k igencsak sok gondot tudtak okozni. Így nem volt mindegy az, hogy egy adott program hogyan volt megírva. Mert nemes egyszerűséggel nem volt hely. Én még ebből a korszakból szocializálódtam, így minden esetben törekszem arra, hogy a programjaim a lehető legletisztultabbak legyenek, illetve amennyiben van rá mód, nulla sallanggal.

    Egy nagyon egyszerű példa, hogy jobban ki tudjam fejteni, miért így gondolkodom: A Webprogramozás csak hobbi, a való életben vezérléstechnikus vagyok. 5-400 Voltig tervezek, építek és programozok vezérléseket. Utóbbihoz használok PLC-ket, HMI-ket és saját gyártású, PIC vezérlésű elektronikákat.
    A PLC-ket 2 általános nyelven lehet programozni: C-ben és az úgynevezett Létra-diagramban. Én utóbbiban dolgozom, mert sokkal áttekinthetőbb, letisztultabb (való igaz, a C-hez hasonlóan szintén egy magas-szintű programnyelvről beszélünk), és fordítást követően lényegesen kisebb méretű a feltöltendő fájl. Ez itt már számít, hiszen egy ilyen eszköznek a memóriája nem végtelen, mint egy számítógépé.
    A PIC vezérlés sem különbözik ettől sokat. Azt is lehet C-ben és Assembly-ben programozni.(Megjegyzés a guglizás helyett: A PIC egy mikrokontoroller). A PIC esetében hatványozottan igaz, hogy korlátozva vagyunk tárhely tekintetében. Vannak az ismerőseim között olyanok, akik C-ben programozzák az eszközt, én Assembly-ben teszem ezt. Az gyakorlatilag a gép nyelve.
    Ami itt a lényeg, hogy ugyan azt a feladatot meg lehet írni mindkét nyelvben, azonban mind kiterjedésére, mind a program futási idejére negatív kihatással van jelentősen, ha azt C-ben teszed meg.

    "Plusz ha használsz egy framework-öt vagy libet, az nem feltétlenül jelenti azt, hogy nem érted a működését. "

    Persze, nem feltétlen jelenti azt. Csak van elég tapasztalat azt illetően, hogy márpedig azt jelenti. Mert az ember márcsak ilyen, ha működik, elfogadja és nem érdekli, hogy mitől működik.
    Saját tapasztalatokból sem kell messzire menni. A cég, ahol dolgozom, megrendelt egy honlapot. Keretrendszerek sokaságából állt össze, annyi hibát dobott a console, hogy megszámolni is sok volt, telis tele volt megannyi felesleges sallanggal és mindezt úgy, hogy valójában egy funkciók nélküli, mondhatni digitális újság volt az elvárás. Ez szépen is működött, egészen addig, míg nem jött a vezetőség felől az igény egy speciális kalkulátorra, amivel az ügyfelek meg tudnak spórolni telefonálgatásokat.
    A kalkulátor elkészült, és beépült az oldalba. Ám amint azt valaki használni is akarta, úgy omlott össze az egész weboldal, mint egy kártyavár. És itt hozzáteszem, a kalkulátor önálló fájlként hibátlanul működött...

    Sajnos lemaradtam az elejéről a moderáció miatt. De egy kis szösszenet a keretrendszer vs egyedi kód.
    - Nem lövünk ágyúval verébre
    - A problémára megoldást kínálunk, nem pedig azt az XY keretrendszert használjuk, amit az előző projektben. Kivéve ha van 6 XY keretrendszerhez értő kolléga, mert akkor ésszerű lehet azt választani.
    - Piacról egyszerűbb felvenni XY keretrendszerhez értő kollégát, mintha egy saját belső keretrendszerhez kéne betanulni.
    - Ha keretrendszert használsz, értékesebb piaci tudásra teszel szert, mint egy belső rendszerrel.

    Ha a probléma egy egyszerű saját kis JS-el megoldható, akkor nem kell egy óriás libet behúzni, lásd első pont. Bugot fog tartalmazni mindegyik fw, viszont egy népszerű frameworknél hamar jönni fog rá javítás. Ha probléma akad, gyorsabban találsz rá megoldást google, stackoverflow segítségével.

    Volt szerencsém mindkettőhöz, ugyanúgy lehet jó belső tool, de lehet szar kód egy keretrendszerrel, fordítva is. Nem ezen múlik. Én viszont keretrendszerrel indulnék neki, kivéve ha lásd 1. pont :R

    Ami nekem most nagyon tetszik, az az Astro.js. Ha nem akarsz lib-et behúzni, akkor csak írsz hozzá egy kis JS-t, de ha valahol kéne, akkor csak annál a komponensnél használod.

  • Hello,
    Tudna valaki segíteni abban, hogy mi az a Set?
    Erre gondolok [link]

    Halmazként gondolj rá, egy elem csak egyszer szerepelhet benne.

  • Oké, a tab kiszedése már megvan (JSFiddle). Maradt az enter, amit a console.log-ban is elég furcsán jelez.

    if (ttt == "\n") {
    console.log("Új sor!");
    }

  • Sziasztok!

    Borzasztó láma kérdés, de sok helyen találkoztam már példákban vele, azonban nem egészen értem, hol és mikre kell vagy lehet használni a return parancsot. Valaki tud dobni róla egy magyarázót?

    Előre is köszönöm

  • Tudom, hogy keretrendszer a menő, de ha mondjuk sima Javascriptben kell megírni egy frontendet, ti hogyan készítitek el a templatet? Mi a véleményetek az általam használt struktúráról? Az init futtatja a render funkciót, ami többször felhasználható így az initbe több render funkció is betehető. Ha adatból kell dolgozni, akkor template string előállító funkciókat készítek. Ha iterálni kell, akkor készítek külön tempatet az itemnek és az összes itemből összeáll egy egységes string, amit a render megkap. Ha az adtaok változtatására van szükség, akkor template string kalkulátor funkciót is használok. Tehát így épül fel -> Adat -> Az összes adat tempate stringje -> Egy item template stringje (ha kell, akkor kalkulálással) Várom a ti megoldásaitokat is, hátha esetleg van jobb módszer is, amiből tanulhatok. https://codepen.io/bzozoo/pen/oNeqObY?editors=0010

Új hozzászólás Aktív témák

Hirdetés