在JavaScript中如何提取JSON对象指定字段为数组,效率优于for循环?
从JSON对象提取指定字段数组的高效实现方案
你可以用JavaScript内置的高阶函数实现需求,这类方法由JS引擎底层优化实现,执行效率普遍高于手动编写的JS层for循环,同时代码更简洁易读:
方案1:Object.values() + map 实现(写法最简洁)
先提取所有球员数据对象,再分别映射得到两个数组:
// 提取所有球员对象数组 const playerList = Object.values(jsonList); // 提取姓名数组 const names = playerList.map(item => item.Name); // 提取得分数组,同步转换为数字类型 const runs = playerList.map(item => Number(item.Runs));
方案2:reduce 单次遍历实现(性能最优)
仅遍历一次数据就得到两个数组,适合数据量较大的场景,性能比两次map更高:
const [names, runs] = Object.values(jsonList).reduce((result, current) => { result[0].push(current.Name); result[1].push(Number(current.Runs)); return result; }, [[], []]);
以上两种方案得到的结果和你预期的完全一致。
内容的提问来源于stack exchange,提问作者Rahul
相关产品推荐
相关产品推荐

