Browse Source

не внутри

master
parent
commit
23520ae11b
1 changed files with 14 additions and 47 deletions
  1. +14
    -47
      index.html

+ 14
- 47
index.html View File

@@ -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 (!уровень[п])
{
if (конец)
{
уровень[п] = значение;
}
else
{
уровень = уровень[п];
}
}
else
{
if (конец)
{
уровень[п] = значение;
}
else
{
уровень[п] = {};
}
уровень[п] = {};
};
}
};
@@ -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);


Loading…
Cancel
Save