別寫 .push(…arr)

date
Jan 30, 2024
slug
array-merging-in-javascript-avoiding-stack-overflow-with-spread-operator-and-concat
status
Published
tags
Shorts
JavaScript
summary
type
Post
當 merge 兩個 array 時,我們可以一個一個 push 進去
而 push 其實能吃多個參數,所以你可以
 
但當你想 push 超多元素的 array 進去時可能會遇到
這是因為 function 的 argument 存放在 stack,過多的參數會倒致 stack overflow
 

可能的解法

除了改寫回原本迴圈外,你也可以選擇改用 concat
不過需要注意的是 concat 會回傳一個新的 array,而 push 則是 in-place 地將元素寫進原本的 array 中。
除此之外,也可以利用 Spread Operator (…),達到一樣的效果
 

© maxam 2023 - 2024