如何转换嵌套对象中的属性值?示例与代码问题咨询
嵌套对象属性值转换需求
初始对象
const studentDetails = { 'details1': {Name: "John", CountryName: "US", value: 1}, 'details2': {Name: "David", CountryName: "AUS", value: 2}, 'details3': {Name: "Bob", CountryName: "UK", value: 3}, };
期望转换结果
{ 'details1': {Name: "John", CountryName: "US", value: 2}, 'details2': {Name: "David", CountryName: "AUS", value: 3}, 'details3': {Name: "Bob", CountryName: "UK", value: 4}, };
已尝试的代码片段
Object.fromEntries(Object.entries(studentDetails).map(([key, value]) => [key, some data transformation on value]))
解决方法
你已经找对了核心思路,只需要把some data transformation on value替换为具体的对象处理逻辑——通过解构原嵌套对象,保留所有原有属性的同时,将value属性值加1即可。这种方式不会修改原对象,会返回一个全新的转换后对象:
const transformedStudentDetails = Object.fromEntries( Object.entries(studentDetails).map(([key, obj]) => [ key, // 解构原对象,覆盖value属性为原值+1 { ...obj, value: obj.value + 1 } ]) );
核心逻辑拆解:
Object.entries(studentDetails):将原对象转换为包含键值对的数组map遍历数组:对每个嵌套对象做解构处理,保留原有属性的同时将value属性值加1Object.fromEntries:将处理后的键值对数组重新转换为对象
内容的提问来源于stack exchange,提问作者Pascal Schmidt
相关产品推荐
相关产品推荐

