Files
mjs/00100.мир.js

65 lines
1.6 KiB
JavaScript

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