не внутри
This commit is contained in:
59
index.html
59
index.html
@@ -19,59 +19,21 @@
|
||||
<body>
|
||||
<script>
|
||||
var мир = {};
|
||||
мир.путь = function(пп) {
|
||||
var уровень = мир;
|
||||
var длина = пп.length;
|
||||
for (var i = 0; i < длина; ++i)
|
||||
{
|
||||
var п = пп[i];
|
||||
if (уровень[п])
|
||||
{
|
||||
уровень = уровень[п];
|
||||
}
|
||||
else
|
||||
{
|
||||
уровень[п] = {};
|
||||
уровень = уровень[п];
|
||||
console.debug("создаём уровень", i, п, уровень);
|
||||
};
|
||||
}
|
||||
return уровень;
|
||||
};
|
||||
мир.строкаПути = function(п) {
|
||||
function вСтроку(ключ) {
|
||||
return `["${ключ}"]`;
|
||||
}
|
||||
return "мир" + п.map(вСтроку).join("") + " = ";
|
||||
};
|
||||
мир.задатьЗначение = function(путь, значение) {
|
||||
мир.создатьПуть = function(путь) {
|
||||
var уровень = мир;
|
||||
var длина = путь.length;
|
||||
for (var i = 0; i < длина; ++i)
|
||||
{
|
||||
var п = путь[i];
|
||||
var конец = (i == длина - 1);
|
||||
if (уровень[п])
|
||||
{
|
||||
if (конец)
|
||||
{
|
||||
уровень[п] = значение;
|
||||
}
|
||||
else
|
||||
{
|
||||
уровень = уровень[п];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (конец)
|
||||
{
|
||||
уровень[п] = значение;
|
||||
}
|
||||
else
|
||||
if (!уровень[п])
|
||||
{
|
||||
уровень[п] = {};
|
||||
}
|
||||
};
|
||||
}
|
||||
};
|
||||
@@ -81,25 +43,20 @@
|
||||
var внутреннийПуть = путь.slice();
|
||||
внутреннийПуть.push(ключ);
|
||||
var значение = словарь[ключ];
|
||||
console.debug("ключ/путь/значение", ключ, внутреннийПуть, значение);
|
||||
var уровень = мир.путь(внутреннийПуть);
|
||||
мир.создатьПуть(внутреннийПуть);
|
||||
if (typeof значение === "string")
|
||||
{
|
||||
// Функция.
|
||||
if (значение.startsWith("function"))
|
||||
{
|
||||
var содержимое = мир.строкаПути(внутреннийПуть) + значение;
|
||||
console.debug("содержимое", содержимое);
|
||||
eval(содержимое);
|
||||
}
|
||||
// Строка.
|
||||
else
|
||||
{
|
||||
console.debug("строка", значение);
|
||||
var содержимое = мир.строкаПути(внутреннийПуть) + '"' + значение + '"';
|
||||
eval(содержимое);
|
||||
//уровень = значение;
|
||||
//мир.задатьЗначение(внутреннийПуть, значение);
|
||||
}
|
||||
}
|
||||
// Вложенный объект/слоарь.
|
||||
@@ -128,6 +85,16 @@
|
||||
console.debug("это проба");
|
||||
}.toString(),
|
||||
простоСтрока: "уппамам",
|
||||
глубже: {
|
||||
ещё: {
|
||||
/*
|
||||
функция9на12: function(аргумент) {
|
||||
console.debug("функция9на12", аргумент);
|
||||
}.toString(),
|
||||
опятьСтрока: "ого",
|
||||
*/
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
json2 = JSON.stringify(json1);
|
||||
|
||||
Reference in New Issue
Block a user