лишь новые
This commit is contained in:
46
00100.мир.js
46
00100.мир.js
@@ -1,5 +1,6 @@
|
||||
мир = {
|
||||
ключники: [],
|
||||
выставленныеЗначения: {},
|
||||
};
|
||||
|
||||
мир.выпрямить = function(obj)
|
||||
@@ -24,8 +25,24 @@
|
||||
return newObj;
|
||||
};
|
||||
|
||||
мир.лишьНовыеЗначения = function(значения) {
|
||||
var новые = {};
|
||||
for (var ключ in значения)
|
||||
{
|
||||
var было = мир.выставленныеЗначения[ключ];
|
||||
var стало = значения[ключ];
|
||||
console.debug("было/стало/результат", было, стало, !(было && было == стало));
|
||||
if (!(было != null && было == стало))
|
||||
{
|
||||
новые[ключ] = стало;
|
||||
мир.выставленныеЗначения[ключ] = стало;
|
||||
}
|
||||
}
|
||||
return новые;
|
||||
};
|
||||
|
||||
мир.разобрать = function(словарь) {
|
||||
var значения = мир.выпрямить(словарь);
|
||||
var значения = мир.лишьНовыеЗначения(мир.выпрямить(словарь));
|
||||
for (var ключ in значения)
|
||||
{
|
||||
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;
|
||||
};
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user