You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

不使用双重for循环将嵌套对象转为扁平列表的最简洁方法是什么

实现对象转数组的高效方案

你不需要用双重for循环实现,根据你的实际场景可以选择以下两种更高性能的方案,均使用JS引擎底层优化过的内置方法实现,执行效率远高于手写循环:


场景1:确认times对象仅包含20102单个目标属性

这是性能最优的方案,时间复杂度为O(1),没有任何遍历开销,直接取属性值赋值即可:

times = times['20102']

场景2:times对象包含多个类似20102的属性,需要合并所有属性对应的数组

时间复杂度为O(n)(n为所有数组元素总个数):

// 现代JS环境可用,flat默认拉平1层数组,刚好适配需求
times = Object.values(times).flat()

// 兼容低版本不支持flat的环境,效果完全一致
times = Array.prototype.concat.apply([], Object.values(times))

效果验证

以你给出的原始结构为例,执行上述任意适配场景的代码后,times输出结果完全符合预期:

console.log(times)
// 输出:
// [
//   { name:'jane', age:12 },
//   { name:'josh', age:19 },
//   { name:'jill', age:14 }
// ]

内容的提问来源于stack exchange,提问作者Colorful Codes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 15:39:02