JavaScript reverse を使う時は気をつけよう

配列の順序を逆にしたい時は、Array.prototype.reverse が便利です。

しかし、一点注意が必要なことがあります。

以下のように元の配列自体を変化させてしま点です。

const data = [1, 2, 3];
const reversed = data.reverse();

console.log(reversed); // [3, 2, 1]
console.log(data); // [3, 2, 1] 元の data も変わってしまっている

上記のようなケースの場合、sliceでコピーをとることで回避できます。

const data = [1, 2, 3];
const reversed = data.slice().reverse();

console.log(reversed); // [3, 2, 1]
console.log(data); // [1, 2, 3]

ただし、slice はシャローコピー(1段階の深さのコピー)なので、その点は注意が必要です。