const getRandomInt = (max) => {
return Math.floor(Math.random() * Math.floor(max));
}
function getRandomIdentifier() {
return Math.floor(Math.random() * Math.floor(70));
}
const generateName = (names) => {
let first = getRandomInt(names.length)
let second = getRandomInt(names.length)
return names[first] + names[second]
}
const generateTree = (depth, level, names) => {
let dateOptions = {
day: "numeric",
month: "numeric",
year: "numeric",
hour: "numeric",
minute: "numeric",
millisecond: "numeric" //millisecond
}
let date = new Date()
let node = {
name: generateName(names),
id: getRandomIdentifier(), //unique
modificationDate: date.toLocaleString('ru', dateOptions),
type: "folder",
children: []
}
if (depth > 0) {
for (let i = 0; i < level; i++) {
node.children.push(generateTree(depth - 1, level, names));
}
} else {
node.type = "file"
}
return node
}
let completeTree = generateTree(1, 5, ['test', 'name', 'surname'])
console.log(JSON.stringify(completeTree, null, 2));
function searchName(current, search) {
if(current.name === search) {
return true;
}
for(var i=0; i<current.children.length; i++) {
if(searchName(current.children[i], search)){
return true;
}
}
return false;
}
console.log("contains xxxx: " + searchName(completeTree, "xxx"))
console.log("contains " + completeTree.name + ": " + searchName(completeTree, completeTree.name))
console.log("contains " + completeTree.children[0].name + ": " + searchName(completeTree, completeTree.children[0].name))
console.log("contains " + completeTree.children[1].name + ": " + searchName(completeTree, completeTree.children[1].name))