javascript - 这些 ArrayToMap 函数用法中哪一个在性能方面更好?
问题描述
尝试映射一个数组,这些实现中哪一个在性能方面更好?有更好的解决方案吗?
//Given the following Array of people:
const people = [ { name: 'Alice', available: true }, { name: 'Bob', available: false }, { name: 'Charlie', available: true }];
const mapWithReduce = (people) => people.reduce((map, person) => ({ [person.name]: person.available, ...map }), {});
const mapWithForEach = (people) => {
const map = {};
people.forEach((person) => map[person.name] = person.available);
return map;
}
我发现mapWithReduce更漂亮,但我不知道...map}是否每次迭代都在复制地图。mapWithForEach似乎更高效。
解决方案
我喜欢这个解决方案。
const people = [
{ name: 'Alice', available: true },
{ name: 'Bob', available: false },
{ name: 'Charlie', available: true }
];
const peopleMap = people.reduce((map, person) => {
map[person.name] = person;
return map;
}, {});
console.log(peopleMap);
看起来等于 forEach 解决方案,但没有创建本地变量。
推荐阅读
- jpa - 在 Spring Data JPA 中,何时声明方法与何时直接使用方法而不声明?
- reactjs - 在反应引导程序中,如何在推送中增加计数器?
- javascript - 为什么不调用useEffect,当props发生变化时,调用render?
- python - 无法根据“安全”将数组数据从 dtype('float64') 转换为 dtype('int32')
- python - 为什么我的while循环有时会卡住,但有时不会在我的“秘密圣诞老人”程序中?
- angular - ngx-document-view 不适用于 objectURL
- django - 姜戈。静态文件不加载
- android - Android SweetAlert 错误:Lcn/pedant/SweetAlert/R$id 类中没有类型 I 的字段 title_text
- html - 如何处理IE等浏览器中不支持的元素
- winforms - Windows 7 视觉样式可以在 Windows 10 中使用吗?