首頁 >web前端 >js教程 >為什麼 JavaScript 的「map」方法會跳過稀疏數組中未定義的元素?

為什麼 JavaScript 的「map」方法會跳過稀疏數組中未定義的元素?

Patricia Arquette
Patricia Arquette原創
2024-12-10 01:10:10126瀏覽

Why Does JavaScript's `map` Method Skip Undefined Elements in Sparse Arrays?

了解JavaScript 中的陣列建立和map 方法

使用new Array(count) 運算式建立陣列時,您實際上建立了陣列一個稀疏數組。稀疏數組在未明確分配值的索引處包含「空洞」或未定義的元素。此行為與使用陣列文字語法 ([1, 2, 3]) 建立的陣列不同,後者為所有元素定義了值。

另一方面,map 方法嘗試應用轉換函數到陣列的每個元素。但是,當應用於稀疏數組時,map 方法會跳過未定義的元素,僅轉換已定義的元素。這解釋了在給定程式碼片段中觀察到的看似意外的行為。

解決問題

要解決此問題,可以在應用地圖方法。 Array.prototype.fill() 方法可用於為陣列中的所有元素指派預設值(例如 undefined)。或者,map 方法可以與條件語句結合使用,僅轉換定義的元素:

var x = new Array(3).fill(undefined);
var y = x.map(function(e) { return e !== undefined ? 0 : 1; });
console.log(y); // [1, 1, 1]

以上是為什麼 JavaScript 的「map」方法會跳過稀疏數組中未定義的元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn