АГ
привяжись к событию on input и будет то что ты хочешь
https://jsbin.com/wefunat/edit?html,js,output
Size: a a a
АГ
АГ
// Давайте напишем функцию
decomposer = (obj) => ({})
/*
Которая будет уметь так:
// input
obj = {
a:1,
b: {
c: 3,
},
}
// output
{
'.a': {
value: 1,
parent: => obj,
},
'.b': {
value: => {c: 3},
parent: => obj,
},
'.b.c': {
value: 3,
parent: => obj.b;
},
}
*/
АГ
key: => obj
это ссылка на соответствующий объектAK
АГ
АГ
// Давайте напишем функцию
decomposer = (obj) => ({})
/*
Которая будет уметь так:
// input
obj = {
a:1,
b: {
c: 3,
},
}
// output
{
'.a': {
value: 1,
parent: => obj,
},
'.b': {
value: => {c: 3},
parent: => obj,
},
'.b.c': {
value: 3,
parent: => obj.b;
},
}
*/
АГ
decomposer = (obj, _path = "", _result = {}) => {Как можно улучшить?
Object.entries(obj).forEach(([key, value]) => {
const path = _path + "." + key;
_result[path] = {
parent: obj,
key,
value,
path,
};
const isObj = typeof value === "object" && value !== null;
if (isObj) {
decomposer(value, path, _result);
}
});
return _result;
};
decomposer({a:1, b:{c: 3}});
АГ
К
К
К
К
К
АГ
К
К
АГ
К
К