|
- мир = {
- ключники: [],
- };
-
- мир.выпрямить = function(obj)
- {
- // https://stackoverflow.com/a/42121920
- var newObj = {};
- for (var key in obj)
- {
- if (typeof obj[key] === 'object' && obj[key] !== null)
- {
- var temp = мир.выпрямить(obj[key])
- for (var key2 in temp)
- {
- newObj[key + "." + key2] = temp[key2];
- }
- }
- else
- {
- newObj[key] = obj[key];
- }
- }
- return newObj;
- };
-
- мир.разобрать = function(словарь) {
- var значения = мир.выпрямить(словарь);
- for (var ключ in значения)
- {
- var путь = ключ.split(".");
- var значение = значения[ключ];
- for (var номер in мир.ключники)
- {
- мир.ключники[номер](ключ, путь, значение);
- }
- }
- };
-
-
- /*
- мир.выпрямить = function(data) {
- var result = {};
- function recurse (cur, prop) {
- if (Object(cur) !== cur) {
- result[prop] = cur;
- } else if (Array.isArray(cur)) {
- for(var i=0, l=cur.length; i<l; i++)
- recurse(cur[i], prop + "[" + i + "]");
- if (l == 0)
- result[prop] = [];
- } else {
- var isEmpty = true;
- for (var p in cur) {
- isEmpty = false;
- recurse(cur[p], prop ? prop+"."+p : p);
- }
- if (isEmpty && prop)
- result[prop] = {};
- }
- }
- recurse(data, "");
- return result;
- };
- */
|