gpt4 book ai didi

javascript - 在迭代器上使用 map()

转载 作者:IT王子 更新时间:2023-10-29 02:55:17 25 4
gpt4 key购买 nike

假设我们有一个 map :let m = new Map();,使用 m.values() 返回一个 map 迭代器。

但是我不能在该迭代器上使用 forEach()map() 并且在该迭代器上实现 while 循环似乎是一种反模式,因为 ES6 提供类似 map() 的函数。

那么有没有办法在迭代器上使用 map() 呢?

最佳答案

最简单性能最低的方法是:

Array.from(m).map(([key,value]) => /* whatever */)

更好

Array.from(m, ([key, value]) => /* whatever */))

Array.from接受任何可迭代的或类似数组的东西并将其转换为数组!正如丹尼尔在评论中指出的那样,我们可以在转换中添加一个映射函数,以删除迭代和随后的中间数组。

使用 Array.from 会将您的性能从 O(1) 提升到 O(n) 正如@hraban 在评论中指出的那样。由于 m 是一个 Map,并且它们不可能是无限的,所以我们不必担心无限序列。对于大多数情况,这就足够了。

还有几种其他方法可以遍历 map 。

使用forEach

m.forEach((value,key) => /* stuff */ )

使用for..of

var myMap = new Map();
myMap.set(0, 'zero');
myMap.set(1, 'one');
for (var [key, value] of myMap) {
console.log(key + ' = ' + value);
}
// 0 = zero
// 1 = one

关于javascript - 在迭代器上使用 map(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43885365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com