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

在JavaScript中将关联数组转换为标准数组的最优方法

高效转换关联数组为标准数组的方法

可以用ES6+提供的Object.entries()结合数组的map()方法来实现,无需手动写for循环,代码更简洁且引擎内部经过优化,效率更高。

基础转换实现

先将关联数组转换为键值对数组,再通过map()重组每个元素的结构:

let ASSARR = { 
    "abc": { "c": 5, "p": 3 },
    "def": { "c": 1, "p": 10 },
    "ghi": { "c": 15, "p": 7 }
};

// 转换为目标结构的数组
let STARR = Object.entries(ASSARR).map(([key, val]) => ({
    i: key,
    ...val // 展开原对象的c、p属性
}));

结合filter和sort操作

可以直接在链式调用中加入过滤和排序逻辑,无需额外遍历:

let processedArr = Object.entries(ASSARR)
    .map(([key, val]) => ({ i: key, ...val }))
    .filter(item => item.c > 2) // 筛选c值大于2的元素
    .sort((a, b) => b.p - a.p); // 按p值降序排序

方法说明

  • Object.entries():将对象的键值对转换为二维数组,每个子数组格式为[键名, 对应属性对象],是ES6引入的原生方法,性能优于手动遍历。
  • 扩展运算符...:快速合并原对象的属性,避免手动逐个赋值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 22:40:44