|
@@ -1,5 +1,6 @@ |
|
|
мир = { |
|
|
мир = { |
|
|
ключники: [], |
|
|
ключники: [], |
|
|
|
|
|
выставленныеЗначения: {}, |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
мир.выпрямить = function(obj) |
|
|
мир.выпрямить = function(obj) |
|
@@ -24,8 +25,24 @@ |
|
|
return newObj; |
|
|
return newObj; |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
мир.лишьНовыеЗначения = function(значения) { |
|
|
|
|
|
var новые = {}; |
|
|
|
|
|
for (var ключ in значения) |
|
|
|
|
|
{ |
|
|
|
|
|
var было = мир.выставленныеЗначения[ключ]; |
|
|
|
|
|
var стало = значения[ключ]; |
|
|
|
|
|
console.debug("было/стало/результат", было, стало, !(было && было == стало)); |
|
|
|
|
|
if (!(было != null && было == стало)) |
|
|
|
|
|
{ |
|
|
|
|
|
новые[ключ] = стало; |
|
|
|
|
|
мир.выставленныеЗначения[ключ] = стало; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
return новые; |
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
мир.разобрать = function(словарь) { |
|
|
мир.разобрать = function(словарь) { |
|
|
var значения = мир.выпрямить(словарь); |
|
|
|
|
|
|
|
|
var значения = мир.лишьНовыеЗначения(мир.выпрямить(словарь)); |
|
|
for (var ключ in значения) |
|
|
for (var ключ in значения) |
|
|
{ |
|
|
{ |
|
|
var путь = ключ.split("."); |
|
|
var путь = ключ.split("."); |
|
@@ -36,30 +53,3 @@ |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* |
|
|
|
|
|
мир.выпрямить = 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; |
|
|
|
|
|
}; |
|
|
|
|
|
*/ |
|
|
|