Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- interface BigObject {
- [key: string]:
- | { cvalue: number | string | undefined | BigObject }
- | undefined;
- }
- function summ(a: BigObject) {
- const x = Object.keys(a).map((k) => {
- const elem = a[k];
- if (typeof elem === "undefined") return 2021;
- if (typeof elem.cvalue === "string") return +elem.cvalue || 2021;
- if (typeof elem.cvalue === "object") return summ(elem.cvalue);
- return elem.cvalue;
- });
- let sum = 0;
- for (let i = 0; i < x.length; i++) {
- sum += x[i] as number;
- }
- return sum;
- }
- const testObjA = {
- hello: { cvalue: 1 },
- world: { cvalue: { yay: { cvalue: "2" } } },
- };
- const testObjB = { undefined };
- const testObjC = {
- hello: { cvalue: "1 cat" },
- };
- console.log(summ(testObjA));
- console.log(summ(testObjB));
- console.log(summ(testObjC));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement