簡體   English   中英

ES6 將可迭代轉換為數組時間復雜度

[英]ES6 Convert iterable to array time complexity

我想知道將可迭代對象(例如 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>)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM