const tree = [1, 2, 3, [4, 5, 6], [12, 8], [13, [14, 15]]];
let list = [];
// treeToList(tree);
function conditionFiltering(tree, condition = null) {
for (const element of tree) {
if (Array.isArray(element)) {
conditionFiltering(element, condition, list);
} else {
if (!condition || (condition && condition(element))) {
list.push(element);
}
}
}
}
function is_even(num) {
return num % 2 === 0;
}
function is_odd(num) {
return num % 2 !== 0;
}
function is_multipleOfN(num, n) {
return num % n === 0;
}
// Filter even numbers
const evenList = [];
conditionFiltering(tree, is_even);
console.log("Even numbers:", list);
// Filter odd numbers
list = [];
conditionFiltering(tree, is_odd);
console.log("Odd numbers:", list);
// Filter multiples of any number
list = [];
conditionFiltering(tree, (num) => is_multipleOfN(num, 3));
console.log("Multiples of 3:", list);