Hirdetés

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

  • CSorBA
    őstag

    Ennél a megoldásnál téged nem érdekel pontosan mennyi mezője van a data objektumnak. Végigmész az összesen, ellenőrzöd, hogy saját mezője-e, majd a kapott értéket a mező nevéből származó index-szel berakod egy tömbbe.

    Egy egyszerű minta: fiddle. Egy kicsit korrektebb: változat.

    "Az én megoldásomnál az lehet a hiba, hogy a "data.d0" objektumot String-ként hozom létre, és azt nem tudja értelmezni?"

    Bizony, a legfőbb hiba ez. A másik, hogy nem rugalmas a megoldás, hiszen mi van, ha már nem 90 elemet kell feldolgozni?

    Ha errefelé mennél mégis, amit nem ajánlanék, akkor valahogy így módosulna a fenti egyszerű példa.

    A lényeg:

    var arr = []; // eredmény
    for (var i = 0; i <= 90; i++) {
    var key = "d" + i;
    arr[i] = data[key]; // a data objektum adott d0 .. d90 elemét így tudod megcímezni
    }

    Szerintem ennél a property-s checkolásnál az Object.keys egy array mappel átláthatóbb és egyszerűbb, persze csak ha nem kell IE8:

    var result = [];

    Object.keys(data).map(function(value, index) {
    result[index] = data[value];
    });

    var data = {
    d0: "zero",
    d1: "one",
    d2: "two",
    d3: "three"
    };

    esetén:

    console.log(result); // Array [ "zero", "one", "two", "three" ]

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