Я новичок в программировании, и я работал над вопросом, который меня беспокоит некоторое время.
Я хочу рекурсивно создать вложенный объект из другого вложенного объекта в javascript,
ниже приведен пример данных для ввода, но в реальной ситуации я не знаю, насколько глубоким будет этот объект.
nums = {
Obj:{
x1:{
x11:43,
x12:4,
x13:612
},
x2:{
x21:4,
x22:7,
},
x3:2,
}}
это результат, который я хочу (см. Число четное или нечетное четное = истинное, нечетное = ложное)
res = {
Obj:{
x1:{
x11:false,
x12:true,
x13:true
},
x2:{
x21:true,
x22:false,
},
x3:true,
}}
и это мой код
const nums = {
Obj:{
x1:{
x11:43,
x12:4,
x13:612
},
x2:{
x21:4,
x22:7,
},
x3:2,
}
}
const res ={};
getResult(nums);
console.log(res);
function getResult(x){
Object.keys(x).forEach(element => {
if(isNaN(x[element])){
res[element]=getResult(x[element]);
} else {
let result = (x[element] % 2 < 1)? true:false;
return {[element]: result}; // this is where I don't know what to, I try to return a object,
// but it gives{x1: undefined, x2: undefined, Obj: undefined}
//
// if I change to "return res[element]=result"
// every sub-Object will add under the same level
}
});
}
Я буду очень признателен, если кто-то может помочь мне в этом.