Hirdetés

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

  • Sk8erPeter

    nagyúr

    válasz Karma #819 üzenetére

    Igen, igazából itt nem is igazán indokolt ennek az iterációnak a használata, de hirtelen elsőre az jutott eszembe, és tulajdonképpen így, a tömb teljes ismeretében úgy gondoltam, hogy nagyjából most mindegy, mit használok - de egyébként igazad van, előfordul olyan objektum, ahol hülyeségek jöhetnek ki belőle még akkor is, ha látszólag ismered az objektum teljes szerkezetét. Előfordult már, hogy bejártam egy szerveroldalon legenerált objektumot ilyen módon, és baromságok jöttek ki belőle.
    Mondjuk akár debuggoláshoz ez még jól is jöhet. :P

    Az megint másik kérdés, hogy ez egy sima tömb, és itt van egy elvárt struktúra, tehát max. akkor jönnek ki belőle baromságok, ha valamit elcseszek a kódban. Az ellen meg a sima indexelt for ciklus sem véd meg. Tehát itt lényegében szerintem tényleg mindegy, mivel járom be.

    Viszont mivel már találkoztam egy párszor ezzel a hibaüzenettel, úgy gondoltam, már érdemes rákérdezni, mi a franc baja van ezzel. De igazából úgy tűnik, erre nem jöttünk rá. :D Legalábbis a hibaüzenet ebben a formában értelmetlen és valótlan, meg számomra legalábbis semmit nem árul el arról, hogy mégis konkrétan mi a rossz benne. Miért kellene a "first" property-t állítani? Honnan jön ez? (Költői kérdések! De ha van rájuk válasz, szívesen fogadom. :D)

    DE érdekes, hogy amennyiben így írom:

    var i = 0;
    for (i in myLinks) {
    ....
    }

    ...akkor ez előző hibaüzenet megszűnik, jön az újabb:
    "The body of a for in should be wrapped in an if statement to filter unwanted properties from the prototype."
    (Most ebben nem ez utóbbi hibaüzenet az érdekes, hanem hogy megszűnt a korábbi parája a "first" property-vel!)

    És a megoldás:

    var i = 0;
    for (i in myLinks) {
    if (myLinks.hasOwnProperty("text") && myLinks.hasOwnProperty("text")) {
    ...........
    }
    }

    Miért nem rinyál, ha deklarálok neki a cikluson kívül egy i változót? :F

    Ja, amúgy azt előbb elfelejtettem írni, hogy bocs, hogy ide írtam a kérdésem, igazából nem egy jQuery-téma (szóval OFF), de a sima JavaScript topicban kevésbé látlak Titeket (ahova igazából ez való; bár igaz, mondjuk Te épp szoktál ott is aktívkodni), ezért írtam ide.

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