僕は普段はElixirを使ってます
必要になったのでJavaScriptの勉強をはじめました
題名はElixirから覚えるJavaScriptですが、逆もできるかも?
今回はsortについて挙動を確認したいと思います
別にsortでなくてもよい、変数がどのように管理されているか知りたかった
Elixir
arr = [5, 4, 3, 2, 1]
x = arr |> Enum.sort()
IO.inspect(arr)
IO.inspect(x)
実行結果
[5, 4, 3, 2, 1]
[1, 2, 3, 4, 5]
JavaScript
arr = [5, 4, 3, 2, 1];
x = arr.sort();
console.log(arr);
console.log(x);
実行結果
[ 1, 2, 3, 4, 5 ]
[ 1, 2, 3, 4, 5 ]
arrが書き換わってしまう…
と言うことで対策
スプレッド構文...
を使ってみる
arr = [5, 4, 3, 2, 1];
x = [...arr].sort();
console.log(arr);
console.log(x);
実行結果
[ 5, 4, 3, 2, 1 ]
[ 1, 2, 3, 4, 5 ]
無事に同じ結果になりました