我想知道将可迭代对象(例如MapIterator)转换为数组的时间复杂度如何? 可以说我有以下代码:
const Component = ({ map }) => {
return (
<Fragment>
{Array.from(map.values()).map(item => <div key={item.key}>{item.name}</div>)}
</Fragment>
)
}
每个Array.from()的时间复杂度是多少,是Im在考虑O(n)还是因为它的MapIterator以某种方式从类似数组的转换为更快的数组。
我的用例是我想将项目(需要访问)保存为性能问题的映射,但是我必须将它们作为数组运行。
出于这个问题的目的,我可以保存状态或使用选择器或类似的东西
你们怎么看?
答案 0 :(得分:1)
您正确的认为Array.from()
是O(n)。如果您担心性能,则可以提高的最简单的方法是不对值进行两次迭代。 Array.from()
已经接受map
函数作为第二个可选参数:
Array.from(map.values(), ({ key, name }) => <div key={key}>{name}</div>)