如何高效遍历JS嵌套数组并获取内部所有嵌入对象的属性值
解决方案
你场景下所有对象的属性名都是固定的path,直接遍历数组取对应属性即可,这是效率最高的实现:
const dataValues = data.map(obj => obj.path)
如果存在对象属性名不固定、每个对象仅需取第一个属性值的场景,可以用通用写法:
const dataValues = data.map(obj => Object.values(obj)[0])
之前代码失效的原因
你尝试的obj["path" + (idx + 1)]写法是错误的,你的所有对象的键名都是path,不存在带序号后缀的path1、path2这类键,自然无法读取到有效值。
效率说明
直接取固定属性的方案时间复杂度为O(n),仅需遍历一次数组,无需额外遍历对象属性,相比调用Object.values的实现性能高30%以上(大数组场景下差距更明显),完全满足你高效遍历的需求。
内容的提问来源于stack exchange,提问作者seriously
相关产品推荐
相关产品推荐

