У меня есть класс typescript
, где есть методы для проверки типа переменных. Как определить в начале doProcess()
, какой метод использовать для обработки следующего?
class MyClass {
public static arr : any[] = [];
// main method
public static doProcess(object : object , justForObjects : boolean = false){
if (justForObjects){
// here should specify which checking method use in *** line
} else {
}
for (let key in object){
if (object.hasOwnProperty(key)){
if (/* *** */){
MyClass.doProcess(object[key] , justObjects)
} else {
MyClass.arr.push(object[key])
}
}
}
return MyClass.arr;
}
// check variables type methods
private static is_object(value : any){
return !!(typeof value === 'object' && !(value instanceof Array) && value);
}
private static is_object_or_array(value : any){
return !!(typeof value === 'object' && value);
}
}
let object = {
'main color' : 'black',
'other colors' : {
'front color' : 'purple',
'back color' : 'yellow',
'inside colors' : {
'top color' : 'red',
'bottom color' : 'green'
}
}
}
MyClass.doProcess(object , true);
Я знаю, что это можно сделать так же для l oop (как показано ниже), но Я хотел бы сначала найти способ сделать это.
for (let key in object){
if(object.hasOwnProperty(key)){
if (justForObjects){
if (MyClass.is_object(object[key])){
// do something
}
} else {
if (MyClass.is_object_or_array(object[key])){
// do something else
}
}
}
}
Спасибо за ваши советы