|
|
@@ -0,0 +1,64 @@ |
|
|
|
мир = { |
|
|
|
ключники: [], |
|
|
|
}; |
|
|
|
|
|
|
|
мир.выпрямить = 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 значение = значения[ключ]; |
|
|
|
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; |
|
|
|
}; |
|
|
|
*/ |