JavaScript中如何通过key变量获取嵌套对象的对应属性值
你可以通过自定义字段映射规则实现需求,每个目标字段对应单独的取值逻辑即可,示例代码如下:
// 输入的原始对象 const input = {"id":100,"date":"2021","d":"D","e":{"e1":"E"},"f":{"f1":"F"}}; // 转换函数 function convertObject(source) { return { // 直接取原对象d属性的原值 d: source.d, // 取e属性下的e1属性值,可选链写法可避免e不存在时报错 e: source.e?.e1, // 硬编码赋值固定值 f: "HardCode" } } // 调用转换得到结果 const output = convertObject(input); console.log(output); // 输出:{ d: 'D', e: 'E', f: 'HardCode' }
如果后续需要扩展更多字段的转换规则,直接在返回的对象中新增对应的字段和取值逻辑即可。
如果需要适配不确定的嵌套层级取值,可以封装通用的深度取值方法,示例如下:
// 通用深度取值方法 function getDeepValue(obj, path) { return path.split('.').reduce((current, key) => current?.[key], obj); } // 使用示例,取e.e1的值 console.log(getDeepValue(input, 'e.e1')); // 输出 E
内容的提问来源于stack exchange,提问作者Karl
相关产品推荐
相关产品推荐

