Size: a a a

2019 November 13

DE

Denis Efremov in pro.js
источник

G

GoDenis in pro.js
Anton Neliubov
_.get(obj, 'a1[1].b.c[3].res')
атдушы, спасибо
источник

DE

Denis Efremov in pro.js
js
function multiIndex(obj,is) {  // obj,['1','2','3'] -> ((obj['1'])['2'])['3']
   return is.length ? multiIndex(obj[is[0]],is.slice(1)) : obj
}
function pathIndex(obj,is) {   // obj,'1.2.3' -> multiIndex(obj,['1','2','3'])
   return multiIndex(obj,is.split('.'))
}
pathIndex('a.b.etc')
источник

S

Syntax Highlight Bot in pro.js
Denis Efremov
js
function multiIndex(obj,is) {  // obj,['1','2','3'] -> ((obj['1'])['2'])['3']
   return is.length ? multiIndex(obj[is[0]],is.slice(1)) : obj
}
function pathIndex(obj,is) {   // obj,'1.2.3' -> multiIndex(obj,['1','2','3'])
   return multiIndex(obj,is.split('.'))
}
pathIndex('a.b.etc')
источник

G

GoDenis in pro.js
Denis Efremov
js
function multiIndex(obj,is) {  // obj,['1','2','3'] -> ((obj['1'])['2'])['3']
   return is.length ? multiIndex(obj[is[0]],is.slice(1)) : obj
}
function pathIndex(obj,is) {   // obj,'1.2.3' -> multiIndex(obj,['1','2','3'])
   return multiIndex(obj,is.split('.'))
}
pathIndex('a.b.etc')
это попробую, спасибо
источник

IS

Ilya Sevostyanov in pro.js
Anton Neliubov
_.get(obj, 'a1[1].b.c[3].res')
вот так вот lodash заезжает в зависимости :) практически никогда не требующийся :)
источник

DE

Denis Efremov in pro.js
js
var dotize = dotize || {};

dotize.parse = function(jsonobj, prefix) {
 var newobj = {};
 function recurse(o, p) {
   for (var f in o)
   {
     var pre = (p === undefined ? '' : p + ".");
     if (o[f] && typeof o[f] === "object"){
       newobj = recurse(o[f], pre + f);
     } else {
       newobj[pre + f] = o[f];
     }
   }
   return newobj;
 }
 return recurse(jsonobj, prefix);
};
источник

S

Syntax Highlight Bot in pro.js
Denis Efremov
js
var dotize = dotize || {};

dotize.parse = function(jsonobj, prefix) {
 var newobj = {};
 function recurse(o, p) {
   for (var f in o)
   {
     var pre = (p === undefined ? '' : p + ".");
     if (o[f] && typeof o[f] === "object"){
       newobj = recurse(o[f], pre + f);
     } else {
       newobj[pre + f] = o[f];
     }
   }
   return newobj;
 }
 return recurse(jsonobj, prefix);
};
источник

AN

Anton Neliubov in pro.js
он чаще всего уже есть в зависимостях. но можно и без него
'a1[1].b.c[3].res'.split(/[\[\].]+/).reduce((obj, key) => obj && obj[key], obj)
источник

in pro.js
Anton Neliubov
он чаще всего уже есть в зависимостях. но можно и без него
'a1[1].b.c[3].res'.split(/[\[\].]+/).reduce((obj, key) => obj && obj[key], obj)
круто
источник

G

GoDenis in pro.js
Anton Neliubov
он чаще всего уже есть в зависимостях. но можно и без него
'a1[1].b.c[3].res'.split(/[\[\].]+/).reduce((obj, key) => obj && obj[key], obj)
фига, крутотень
источник

DE

Denis Efremov in pro.js
Anton Neliubov
он чаще всего уже есть в зависимостях. но можно и без него
'a1[1].b.c[3].res'.split(/[\[\].]+/).reduce((obj, key) => obj && obj[key], obj)
obj is not defined
источник

in pro.js
у меян не сработало
источник

G

GoDenis in pro.js
нужно как-то объект подать на вход
источник

AN

Anton Neliubov in pro.js
источник

AN

Anton Neliubov in pro.js
само собой, что это нужно взять из какого-то объекта
источник

G

GoDenis in pro.js
ты крут, спасибо
источник

AN

Anton Neliubov in pro.js
GoDenis
ты крут, спасибо
нп
источник

KS

Kot S in pro.js
В JS RegExp сейчас нет поддержки Multiple Named Groups? (?<digit>[0-5])|b(?<digit>[4-7]). Можно как-то обойти?
источник

IS

Ilya Sevostyanov in pro.js
Anton Neliubov
он чаще всего уже есть в зависимостях. но можно и без него
'a1[1].b.c[3].res'.split(/[\[\].]+/).reduce((obj, key) => obj && obj[key], obj)
ну тут не обрабатываются некоторые пограниченые случаи, но как общий случай и для объектов с регулярной структурой - пойдет норм. и даже редюска заюзана "на затравку" ФК образа мышления и алгоритмов :)
источник