// 类型定义
type DynamicObject = {
[key: string]: string | number | boolean | DynamicObject;
};
type ComplexData = DynamicObject[];
// 统计函数
function sumNumbersInComplexData(data: ComplexData): number {
let sum = 0;
data.forEach((obj) => {
for (const key in obj) {
if (typeof obj[key] === 'number') {
sum += obj[key];
} else if (typeof obj[key] === 'object' && obj[key]!== null) {
sum += sumNumbersInComplexData([obj[key] as DynamicObject]);
}
}
});
return sum;
}
const complexData: ComplexData = [
{ a: 1, b: 'test', sub: { c: 2 } },
{ d: true, e: 3 }
];
console.log(sumNumbersInComplexData(complexData));