Compare commits

...

4 Commits

Author SHA1 Message Date
Sithas 0a5d0e2fb6 Merge pull request 'task_1' (#1) from task_1 into main
Reviewed-on: #1
2024-05-08 17:06:36 +02:00
Антон 6d65e5e735 refactoring 2024-05-08 18:05:10 +03:00
Антон 4830525440 refactoring 2024-05-07 19:42:53 +03:00
Антон 7263d9680d refactoring 2024-05-05 19:53:26 +03:00
3 changed files with 47 additions and 2 deletions

View File

@ -0,0 +1,10 @@
class Context {
constructor(level = 0, isLast = false) {
this.level = level;
this.isLast = isLast;
}
}
module.exports = {
Context,
}

View File

@ -1,4 +1,39 @@
const treeLogger = (tree, context) => {};
const {Context} = require("./Context");
const treeLogger = (tree, context) => {
if (context.level === 0) {
console.log(tree.name);
if (tree.items) {
for (let i = 0; i < tree.items.length; ++i) {
const subtree = tree.items[i];
const lastIndex = tree.items.length - 1;
const ctx = new Context(context.level + 1, (i === lastIndex));
treeLogger(subtree, ctx);
}
}
} else if (context.level === 1) {
const rootChar = context.isLast ? '└ ' : '├ ';
console.log(rootChar + tree.name);
if (tree.items) {
for (let i = 0; i < tree.items.length; ++i) {
const subtree = tree.items[i];
const lastIndex = tree.items.length - 1;
const ctx = new Context(context.level + 1, (i === lastIndex));
treeLogger(subtree, ctx);
}
}
} else {
let print = ''
while (--context.level) {
print += '|'
}
print += (context.isLast ? '└ ' : '├ ');
console.log(print + tree.name);
}
};
module.exports = {
treeLogger

View File

@ -10,4 +10,4 @@ treeLogger({
"name": 5,
"items": [{ "name": 6 }]
}]
}, new Context(false, 0));
}, new Context());