ES6将可迭代转换为数组时间复杂性



我想知道将可迭代对象(例如MapIterator(转换为数组的时间复杂度是多少。假设我有这个代码:

const Component = ({ map }) => {
return (
<Fragment>
{Array.from(map.values()).map(item => <div key={item.key}>{item.name}</div>)}
</Fragment>
)
}

每个Array.from((的时间复杂度是多少,是我认为的O(n(,还是因为它是一个MapIterator,以某种方式更快地从类数组转换为数组。

我的用例是,我想将项目(需要访问(保存为性能问题的映射,但我必须将它们作为数组来运行。

出于这个问题的目的,我可以保存在状态或使用选择器或类似的东西

你们觉得怎么样?

Array.from()是O(n(是正确的。如果您关心性能,可以做的最简单的改进就是不迭代值两次Array.from()已经接受map函数作为第二个可选参数:

Array.from(map.values(), ({ key, name }) => <div key={key}>{name}</div>)

最新更新