應該用forEach改變數組的值嗎? https://segmentfault.com/q/1010000013170900?utm_source=index-hottest
由於js中的數組是引用類型,所以可以利用類似指針的特性通過改變另一個變量去修改原始的值。我認為這其實是js中的缺陷,所以我不喜歡利用這個"缺陷"去實現一些功能,在最近的一次code review中,同事指出了這個問題。所以我希望有更多朋友能給我一些建議。
下面就是簡單的例子。
let arr = [{ a:1, b:2, }, { a:3, b:4, }];
如果有以上數組,我需要將每一項的a改為3。大概有兩種寫法,一種是用forEach,另一種是用map來返回一個新數組(暫不考慮for循環)。
forEach:
arr.forEach((item) => { item.a = 3; });
map:
arr = arr.map((item) => { // 有同事指出應該聲明一個新變量來存儲map的結果,這個建議我認為是對的。 item.a = 3; return item; });