重置Javascript对象中所有值的最佳方法

run*_*ero 7 javascript lodash

我的javascript对象看起来像:

$scope.display = {
  current: {
       key1: 'value1',
       key2: ['a', 'b'],
       key3: 'value2'
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的代码中的一些事件,我想将这些值重置为undefined,如下所示:

$scope.display = {
  current: {
       key1: undefined,
       key2: [],
       key3: undefined
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用像lodash这样的库,但是我没有看到任何可以执行此操作的函数.我知道如何手动执行此操作,但我想知道是否有"最佳实践"方法来执行此任务.

dfs*_*fsq 5

我会创建一个返回对象结构的辅助函数:

function getDisplayObject() {
    return {
        current: {
            key1: undefined, // or you can omit undefined keys
            key2: [],
            key3: undefined
        }
    };
}

$scope.display = getDisplayObject();
Run Code Online (Sandbox Code Playgroud)

因此,稍后当您需要重置数据时,您将$scope.display = getDisplayObject();再次执行.