JavaScript: разблокировать объект путями для ключей
Основной JavaScript (синтаксис ES6): упражнение 112 с решением
Напишите программу на JavaScript, чтобы разблокировать объект путями для ключей.
Пример решения:
HTML-код:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Unflatten an object with the paths for keys</title>
</head>
<body>
</body>
</html>
Код JavaScript:
//#Source https://bit.ly/2neWfJ2
const unflattenObject = obj =>
Object.keys(obj).reduce((acc, k) => {
if (k.indexOf('.') !== -1) {
const keys = k.split('.');
Object.assign(
acc,
JSON.parse(
'{' +
keys.map((v, i) => (i !== keys.length - 1 ? `"${v}":{` : `"${v}":`)).join('') +
obj[k] +
'}'.repeat(keys.length)
)
);
} else acc[k] = obj[k];
return acc;
}, {});
console.log(unflattenObject({ 'a.b.c': 1, d: 1 }));
Пример вывода:
{ "А": { "Ъ": { "С": 1}}, "д": 1}
Блок - схема:
Демонстрация в реальном времени:
См. Pen javascript-basic-упражнение-112-1 от w3resource ( @ w3resource ) на CodePen .
Улучшите этот пример решения и опубликуйте свой код через Disqus
Предыдущий: Напишите программу на JavaScript для построения массива, используя функцию итератора и начальное начальное значение.
Далее: написать программу на JavaScript, чтобы избежать экранирования символов HTML.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code