首頁 > web前端 > js教程 > 為什麼使用「map()」時「new Array(count)」的行為與陣列文字不同?

為什麼使用「map()」時「new Array(count)」的行為與陣列文字不同?

DDD
發布: 2024-12-13 11:53:13
原創
196 人瀏覽過

Why Does `new Array(count)` Behave Differently from Array Literals When Using `map()`?

為什麼陣列建立會影響陣列轉換?

在某些環境中,使用 new Array(count) 建立陣列會出現意外行為地圖方法。與使用文字語法(例如,[undefined, undefined, undefined])建立的陣列不同,透過 new Array(3) 建構的陣列不會使用 map 正確轉換其元素。

此行為歸因於未填滿的陣列。使用 new Array(count) 建立陣列時,產生的陣列的元素保持未定義狀態。這與使用文字語法建立的陣列不同,後者會自動以 undefined 初始化元素。

要解決此問題並確保映射正確運行,建議使用任何值填充數組元素,例如 undefined ,在嘗試轉換之前。 Array.prototype.fill() 方法可用於此目的。

例如,使用 new Array(count) 和 map 建立前 10 個整數的陣列:

let arr = new Array(10).fill(undefined).map((val, idx) => idx);
登入後複製

這將產生所需的輸出:

[0,1,2,3,4,5,6,7,8,9]
登入後複製

以上是為什麼使用「map()」時「new Array(count)」的行為與陣列文字不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板