作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
尝试映射数组,这些实现中哪一种性能更好?有更好的解决办法吗?
//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}是否在每次迭代时复制 map 。 mapWithForEach 似乎性能更高。
最佳答案
性能方面,使用 for
循环是最快的。
const people = [{ name: 'Alice', available: true }, { name: 'Bob', available: false }, { name: 'Charlie', available: true }]
const mapWithForLoop = (key, value) => array => {
const map = {}
for (let i = 0; i < array.length; i++) {
const entry = array[i]
map[entry[key]] = entry[value]
}
return map
}
const mapPeopleWithForLoop = mapWithForLoop('name', 'available')
console.log(mapPeopleWithForLoop(people))
forEach()
不过,方法很接近。
关于javascript - 这些 ArrayToMap 函数用法中哪一种性能更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54310004/
尝试映射数组,这些实现中哪一种性能更好?有更好的解决办法吗? //Given the following Array of people: const people = [ { name: 'Alic
我是一名优秀的程序员,十分优秀!