配列のローテーション (?) をします。
配列のローテーション
配列の先頭と末尾がつながってるイメージです。
先頭の要素を取り除いたら末尾に追加し,末尾の要素を取り除いたら先頭に追加する……
うまく言葉にできないけどまあそういう感じです。
コード
const rotate = (arr, count = 1) => (
arr.push(...arr.splice(0, (arr.length + count % arr.length) % arr.length)),
arr);
引数に与えた配列をかきまぜます。引数 count
には移動する要素の数を指定。マイナスの値にすると移動の向きが逆になります。
配列を変更しない (ローテーション後の配列を返す) ようにしたい場合は,配列のコピーを rotate()
するだけ。
const rotated = (arr, count = 1) => rotate([...arr], count);
使用例
let arr = [1, 2, 3, 4, 5]; console.log(rotated(arr, -1)); // [5, 1, 2, 3, 4] rotate(arr, 2); console.log(arr); // [3, 4, 5, 1, 2]
日記 (おまけ)
友達がラスクくれた。授業分からんし雨もなかなか止まない