Javascript-将嵌套对象中的所有值设置为null

我有以下对象,并希望将其中的所有值设置为null,同时保持对象结构

var objs = {
    a: {
        prop1: {id: null, val: 10},
        prop2: true,
        prop3: null,
    },
    b: {
        prop1: {id: null, val: 20},
        prop2: true,
        prop3: null,
    },
    c: 10
}

结果需要为:

var objs = {
    a: {
        prop1: {id: null, val: null},
        prop2: null,
        prop3: null,
    },
    b: {
        prop1: {id: null, val: null},
        prop2: null,
        prop3: null,
    },
    c: null
}

该解决方案对我有用,我相信它应该在任何深度都有效。但是,如果有更优雅或更有效的解决方案,请告诉我。

var objs = {
    a: {
        prop1: {id: null, val: 10},
        prop2: true,
        prop3: null,
    },
    b: {
        prop1: {id: null, val: 20},
        prop2: true,
        prop3: null,
    },
    c: 10
}

function nullTest(val){
    for (key in val) {
        if(typeof(val[key]) !== 'object') {
            val[key] = null;
        } else {
            val[key] = nullTest(val[key])
        }
    }
    return val
}

console.log(nullTest(objs));

谢谢