在重復相同格式的內容時,我經常使用 map()。
此時,串列如下。
一個。
const list = [{title: a, content: 1}, {title: b, content: 2}, {title: c, content: 3}]
list.map((item) => (
<div>
<div>{item.title}</div>
<div>{item.content}</div>
</div>
))
B.
const list = {a: 1, b: 2, c: 3}
Object.keys(list).map((item) => (
<div>
<div>{item}</div>
<div>{list[item]}</div>
</div>
))
做list的時候,我經常用B,因為我喜歡把內容分類到object的key里面。
使用B在性能上有什么缺點嗎?
我不知道如何找到答案,所以我要把它貼在這里。
uj5u.com熱心網友回復:
使用可變物件鍵(例如標題,在您的問題中)的幾個問題是:
如果標題/鍵變化并且是動態的(我認為這很有可能,因為程式員喜歡使事情變得干燥和自動化),您必須確保鍵名稱和值始終來自可信賴的來源. 否則 - 就像如果值可能來自用戶輸入或 API 或其他東西 - 在某些情況下,您可能會向惡意代碼執行敞開大門。這不是一個非常罕見的問題。
這就是 Map 在處理動態“鍵”時通常是更好選擇的原因之一——它們沒有這樣的問題。(或者,根本不使用動態鍵)
至少,V8 利用隱藏類來優化解釋器持有的內部物件結構。當所有物件都具有相同的屬性名稱時,這很有效,但當屬性都是動態的時就行不通了。它極不可能引起注意,但您可能需要牢記這一點。
uj5u.com熱心網友回復:
有 3 種型別可以迭代物件。
- Object.keys()
- Object.values()
- Object.entries()
在您的情況下,您可以嘗試 Object.entries()
const list = {a: 1, b: 2, c: 3}
Object.entries(list).map(([key, value]) => (
<div>
<div>{key}</div>
<div>{value}</div>
</div>
))
更多參考:Object.entries
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/395627.html
標籤:javascript 数组 反应 目的
