如何在不扩展为列表的情况下减少(...) JavaScript Map 对象的条目?

2023-11-22

似乎没有好的标准库方法来做这样的事情?

let thismap = new Map([[1,2],[2,3]])
console.log(thismap.entries().reduce((prev, [a,b])=>prev + a * b, 0))

Uncaught TypeError: thismap.entries(...).reduce is not a function

我认为这是由于 Entry() 函数返回迭代器所致?我不想Array.from(thismap.entries()).reduce(...),因为这会不必要地在内存中构建数组。感觉好像我错过了一些东西,但我也不想重新实现应该在标准库中的东西。

我想如果我使用一个对象来代替(由于其他原因,这里不是一个令人满意的解决方案),entries() 本质上将是一个数组扩展而不是迭代器(尽管我认为它可以在考虑内存效率的情况下实现)。但我仍然想知道如何减少迭代器


我也不想重新实现标准库中应该包含的东西。

确实应该如此。有一个建议添加它:迭代器助手。在等待的过程中,您已经可以使用填充物这将使您的原始代码正常工作:-)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在不扩展为列表的情况下减少(...) JavaScript Map 对象的条目? 的相关文章

随机推荐