Diskuze: definice key objektu jako proměnné
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
V předchozím kvízu, Online test znalostí JavaScript, jsme si ověřili nabyté zkušenosti z kurzu.
Spatny zpusob je pouziti eval(). Protoze eval ti spusti nekontrolovatelne jakykoliv kod, coz miluji hackeri! Ani nevim, zda to jeste prohlizece podporuji.
path = "navigation.courseOverGroundTrue.value"
console.log( eval("ret."+path))
Ja osobne vypisuji do konzole cely json, pokud toho neni moc
console.log( JSON.stringify(ret) )
Ale, muzes to poskladat jako objekt (pripadne si udelej fukci s cyklem pro vypis).
path = [ "navigation", "courseOverGroundTrue", "value" ];
console.log( ret[ path[0] ][ path[1] ][ path[2] ] )
console.log( ret["navigation"]["courseOverGroundTrue"]["value"] )
A dal muzes zkusit google, treba je nove na to nejaka finta. Me znalosti jsou omezene tak na 20 let zpet.
// tim cyklem by to slo mozna takto:
function pathApply(item, path)
{
path = path.split('.');
for (var i in path)
{ if (item[ path[i] ]) {item = item[path[i]];} }
return item;
}
path = "navigation.courseOverGroundTrue.value";
console.log(pathApply(ret, path));
const isExist = (ref) => typeof ref!='undefined' && ref!=null;
...
if (isExist(item[ path[i] ])) {item = item[path[i]];} // tady bych mozna pouzil ifExist
Zdravím, ten cyklus zabral ... jde o to, že já nevím kolik je vlastně těch klíčů, tedy jaká je hloubka.
Moc díky všem
David
Zobrazeno 5 zpráv z 5.