如何重置动态键对象中嵌套对象的email字段?
解决动态键对象的email重置问题
针对你需要重置动态键对象中所有嵌套对象email属性的需求,这里有两种实用的实现方式:
方式一:直接修改原对象
如果不需要保留原数据,可以直接遍历对象的所有键,逐个重置email属性:
const obj = {16: {email: 'tom@tom.tom', name: 'Tom', seq: 16}, 50: {email: 'boy@boy.boy', name: 'Boy', seq: 50}}; // 遍历对象的所有键,重置每个嵌套对象的email Object.keys(obj).forEach(key => { obj[key].email = ''; }); console.log(obj); // 输出结果:{16: {email: '', name: 'Tom', seq: 16}, 50: {email: '', name: 'Boy', seq: 50}}
方式二:生成新对象(保留原数据)
如果需要保留原对象不变,可以通过复制生成新对象:
const obj = {16: {email: 'tom@tom.tom', name: 'Tom', seq: 16}, 50: {email: 'boy@boy.boy', name: 'Boy', seq: 50}}; // 基于原对象生成新对象,重置email属性 const newObj = Object.fromEntries( Object.entries(obj).map(([key, nestedObj]) => { // 复制嵌套对象并修改email,不影响原数据 return [key, {...nestedObj, email: ''}]; }) ); console.log(newObj); // 输出结果:{16: {email: '', name: 'Tom', seq: 16}, 50: {email: '', name: 'Boy', seq: 50}} console.log(obj); // 原对象保持不变
这两种方法都不需要硬编码对象的键,不管对象里有多少个嵌套对象,都能自动处理。
内容的提问来源于stack exchange,提问作者Lee SeongBae
相关产品推荐
相关产品推荐

