user.firstName = ''
我经常在这种情况下运行:
我有一个变异/缩减器需要设置几个道具的默认值。我想不必一个一个地明确取消/重置它们。 (例如:用户注销:for...in
等)。
在不知道对象结构的情况下,删除每个值(并设置为null或空字符串)的最有效,最安全和最高效的方法是什么?任何lodash或其他具有该用途的库?
我基本上在考虑使用for (prop in user) {
console.log(prop);
}
Object.keys
或user = {
firstName: '',
age: null,
location: {
country: '',
city: '',
},
}
,或保留可替换上一个的默认对象。
期望的结果
program1.cpp:44:30: error: ‘get’ was not declared in this scope
while (get(file,word))
答案 0 :(得分:1)
您可以使用递归函数将所有值设置为null或空字符串。如果值是对象,则将其传递回函数。
let user = {
firstName: 'Nick',
age: 35,
location: {
country: 'USA',
city: 'NYC',
},
}
function nullify(obj) {
Object.keys(obj).forEach(key => {
if (typeof obj[key] === 'object') {
return nullify(obj[key]);
}
obj[key] = (typeof obj[key] === 'string') ? '' : null;
});
return obj;
}
console.log(nullify(user));
答案 1 :(得分:0)
我在想错误的方法。我的问题是Vuex实现的一部分--Vuex为API提供了一种以编程方式重置状态的方法。
一个简单的Object.assign(state, defaultState);
可以解决问题。