Javascript pole proměných

Jirka

Javascript pole proměných
« kdy: 14. 02. 2015, 09:55:11 »
Ahoj Vespolek,

prosím o pomoc jak pomocí javascriptu z proměné obsahující pole proměných dostat určité hodnoty.

Mám proměnou s definicí viz níže

barva: [{"name":"Cyan","type":"standart","previews":"CMYK"}, {"name":"Magenta","type":"standart","previews":"CMYK"}, {"name":"Yellow","type":"standart","previews":"CMYK"}, {"name":"Black","type":"standart","previews":"CMYK"},{"name":"PANTONE 100C","type":"process","previews":"CMYK"}]

pomocí javascriptu bych potřeboval získat pole z atributů "name",

výsledek by měl vypadt takto:

barvy_vyber : { "barva1":"Cyan", "barva2":"Magenta", ……. }

Předem moc díky za pomoc, učím se a nad tímto jsem už strávil moře času a nevím jak na to přijít.

Jirka


FrostyX

Re:Javascript pole proměných
« Odpověď #1 kdy: 14. 02. 2015, 10:31:48 »
Ahoj, javascript neznám, ale všude jinde bych hledal něco jako 'array_map'. Projde to daný seznam a na každý prvek aplikuje funkci kterou řekneš. Tvoje funkce bude pro každý prvek, což je u tebe

Kód: [Vybrat]
{"name":"Cyan","type":"standart","previews":"CMYK"}
jen vracet prvek["name"].

FrostyX

Re:Javascript pole proměných
« Odpověď #2 kdy: 14. 02. 2015, 10:32:29 »

Vertex

Re:Javascript pole proměných
« Odpověď #3 kdy: 14. 02. 2015, 11:53:20 »
barva = [{"name":"Cyan","type":"standart","previews":"CMYK"}, {"name":"Magenta","type":"standart","previews":"CMYK"}, {"name":"Yellow","type":"standart","previews":"CMYK"}, {"name":"Black","type":"standart","previews":"CMYK"},{"name":"PANTONE 100C","type":"process","previews":"CMYK"}]
vyber = {};
(function () {
    var counter = 1;
    barva.forEach(function(e) { var tmp = e.name; var key = "barva" + counter++; vyber[key] = tmp; });
})(); //aby sa counter nedostal do globalneho scope tak to obalime do anonymnej funkcie ktoru hned aj zavolame

Ondra121

Re:Javascript pole proměných
« Odpověď #4 kdy: 14. 02. 2015, 11:54:12 »
Můžeš třeba taky využít nějakou knihovnu, třeba underscore http://underscorejs.org/#where


Ondra121

Re:Javascript pole proměných
« Odpověď #5 kdy: 14. 02. 2015, 11:58:26 »

Lucas

Re:Javascript pole proměných
« Odpověď #6 kdy: 14. 02. 2015, 13:04:07 »
Citace
Mám proměnou s definicí viz níže

barva: [{"name":"Cyan","type":"standart","previews":"CMYK"}, {"name":"Magenta","type":"standart","previews":"CMYK"}, {"name":"Yellow","type":"standart","previews":"CMYK"}, {"name":"Black","type":"standart","previews":"CMYK"},{"name":"PANTONE 100C","type":"process","previews":"CMYK"}]

Nic ve zlým, ale takhle v sobotu po ránu se mi trochu zvedl kufr při pohledu na ten prasácký zápis. Zkus to příště radši nějak takhle:

Kód: [Vybrat]
var barva = [
    {
        "name": "Cyan",
        "type": "standart",
        "previews": "CMYK"
    },
    {
        "name": "Magenta",
        "type": "standart",
        "previews": "CMYK"
    },
    {
        "name": "Yellow",
        "type": "standart",
        "previews": "CMYK"
    },
    {
        "name": "Black",
        "type": "standart",
        "previews": "CMYK"
    },
    {
        "name": "PANTONE 100C",
        "type": "process",
        "previews": "CMYK"
    }
];

Citace
pomocí javascriptu bych potřeboval získat pole z atributů "name",

výsledek by měl vypadt takto:

barvy_vyber : { "barva1":"Cyan", "barva2":"Magenta", ……. }

Zřejmě si pleteš pojmy objekt(hashmap, plain object, ...) a pole. Tohle totiž není pole. Ale dobrá:

Kód: [Vybrat]
result = {};
for (var id in barva) result['barva' + (+id + 1)] = barva[id].name;

No a poslední připomínka - nemíchej při psaní kódu dohromady několik světových jazyků, takhle tě nebude mít nikdo rád.

hawran.nepřihlášený

Re:Javascript pole proměných
« Odpověď #7 kdy: 14. 02. 2015, 15:50:19 »
...
No a poslední připomínka - nemíchej při psaní kódu dohromady několik světových jazyků, takhle tě nebude mít nikdo rád.

+1

http://pravopisne.cz/2010/10/standard-%C3%97-standart/
 ;)

Ale na druhou stranu, je to kůl ...