Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Jirka 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
-
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
{"name":"Cyan","type":"standart","previews":"CMYK"}
jen vracet prvek["name"].
-
Sakra, vypadl mi link - http://www.tutorialspoint.com/javascript/array_map.htm (http://www.tutorialspoint.com/javascript/array_map.htm)
-
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
-
Můžeš třeba taky využít nějakou knihovnu, třeba underscore http://underscorejs.org/#where (http://underscorejs.org/#where)
-
oprava: http://underscorejs.org/#pluck
-
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:
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"
}
];
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á:
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.
-
...
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 ...