Keresés

Hirdetés

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

  • Karma

    félisten

    válasz r4z #4003 üzenetére

    Ez a három szakasz a lényeg:

    var manufacturers = _.groupBy(inputdata, function (product) {
    return product.Gyarto;
    });

    Azaz magyarra fordítva az underscore groupBy függvényt: "csoportosítsd az inputdata tömb elemeit a Gyarto property értéke alapján". Ezután a manufacturers egy olyan objektum, amiben a kulcsok a gyártók, az értékek pedig az oda tartozó termékek listája.

    var manufacturerPrefixLengths = _.map(manufacturers, function (products, manufacturer) {
    return {
    manufacturer: manufacturer,
    prefix: _.min(products.map(function (product) {
    return product.Tipus.sameUntil(manufacturer);
    }))
    };
    });

    Itt van az összehasonlítás meghívva. A map függvény veszi egy lista vagy objektum elemeit, ráhív egy függvényt egyesével mindre, az eredményeket pedig egy új listába fűzi össze. Más szóval transzformálja a listát.

    Magyarul: "Minden gyártó-terméklista párt képezz le egy olyan objektumra, ami tartalmazza a gyártó nevét (manufacturer kulccsal), és az egyezések minimumát (prefix kulccsal)." A min függvény visszaadja egy lista minimumát.

    A terméklistából prefixhosszlistát meg egy belső map képez, ami minden terméket leképez a gyártó nevével vett egyező szakasz hosszára.

    var result = _.object(_.map(manufacturerPrefixLengths, function(x){return [x.manufacturer, x.prefix]}));

    Ez az utolsó hívás pedig annyit tesz, hogy az előző lépésben generált listát, amiben a {manufacturer, prefix} objektumok voltak, egy valódi objektumra alakítja át.

    “All nothings are not equal.”

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