JavaScriptでRubyのArray#replaceのようなことをしたい
どういうことかというと、新しい Array を生成するのではなく同一オブジェクトのまま Array を破壊的に変更したいということ。
Rubyの場合
a = [1, 2, 3]
b = a.map {|e| e * 2}
a.replace(b)
# => [2, 4, 6]
と Array#replace を利用することで既存の Array を新しい Array で置き換えてしまうことができる。オブジェクトとしては同じものを指したまま内容を書き換えてしまうことができるわけだ。
JavaScriptの場合
古い知識のままだと結構面倒くさいんだけど、
JavaScript MDN</a>
を使うと簡単にできる。
a = [1, 2, 3]
b = a.map(e => e * 2)
a.splice(0, b.length, ...a)
# => [2, 4, 6]
なるほどな。