在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
相关产品推荐
相关产品推荐

