首頁  >  文章  >  web前端  >  為什麼 Array.prototype.Push 回傳新的陣列長度?

為什麼 Array.prototype.Push 回傳新的陣列長度?

Patricia Arquette
Patricia Arquette原創
2024-10-22 11:54:02538瀏覽

Why Does Array.prototype.Push Return the New Array Length?

為什麼 Array.prototype.push 回傳新的陣列長度?

在 JavaScript 中,Array.prototype.push 方法可以方便地允許追加元素到陣列末尾。然而,它的特殊之處在於返回新的數組長度,而不是看似更有價值的東西。

這個決定可以追溯到 1997 年 JavaScript 1.2 中推送的開始。受到 Perl 數組操作函數的啟發,JS1.2推送最初返回最後推送的項目,遵循 Perl 4 約定。

隨著 JavaScript 發展到 JS1.3,發生了重大變化。 Push 函數被修改為遵循 Perl 5 約定,該約定規定傳回新的陣列長度。這個決定可以追溯到原始的 jsarray.c 原始碼,其中指出,在 JavaScript 1.2 的情況下,該函數應該會傳回最後推送的項目,而對於其他版本,它應該會傳回新的長度。

值得注意的是,這個看似無關緊要的選擇卻有著重大的意義。透過返回新的長度,push 可以輕鬆實現可連結性,從而允許在修改後的陣列上執行後續操作,而無需重新分配它。例如,可以連接數組並在一行程式碼中對它們進行排序:

const result = [1, 2].push(3).push(4).sort();
console.log(result); // Output: [1, 2, 3, 4]

此外,返回新長度為所有數組操作方法(例如pop 和shift)提供了一致的接口,這也返回更改後的長度而不是刪除的元素。這種一致性簡化了使用並減少了開發人員的認知開銷。

以上是為什麼 Array.prototype.Push 回傳新的陣列長度?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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