JS中以最低复杂度最优实践遍历复杂数组中Value2的方法问询
JS遍历该结构Value2的最低复杂度方案
时间复杂度最低为O(n),n为所有Value2数组内的元素总数量,不存在更低复杂度的方案,因为必须遍历所有目标元素才能完成全量访问。
方案1:无需关联外层字段的最优写法
如果你只需要处理Value2的内部字段,不需要拿到外层的Id/Value,直接用flatMap打平后遍历即可,写法简洁且无冗余操作:
// res为接口返回的原始数组 const allValue2Items = res.flatMap(item => item.Value2 ?? []); allValue2Items.forEach(v2Item => { // 此处写业务逻辑,可直接访问v2Item.Id、v2Item.Value3 });
?? []的写法兼容了Value2为空/undefined的异常场景,避免运行时报错。
方案2:需要关联外层字段的最优写法
如果你遍历Value2的时候需要同时使用外层的Id、Value字段,直接用两层遍历即可,复杂度同样为O(n):
res.forEach(outerItem => { const outerId = outerItem.Id; const outerValue = outerItem.Value; outerItem.Value2?.forEach(v2Item => { // 此处可同时访问外层字段和Value2的内部字段 }); });
?.可选链操作符同样用于兼容Value2为空的异常场景。
内容的提问来源于stack exchange,提问作者Mohamed Fawzy
相关产品推荐
相关产品推荐

