配列の要素を削除・置換してくれるので個人メモ
- spliceは自身を更新する関数。なので、裏側でimmerを使っているredux-toolkitのreducerの時とか便利。
- 第1引数:対象の要素インデックス番号
- 第2引数:対象の要素インデックス番号を起点にした、置換or削除する要素の数。(1なら、指定した要素インデックス番号の要素のみ対象)
- 第3引数以降:置換後の文字列。未指定の場合は置換ではなく削除処理になる。
基本的な置換と削除
const months = ["A", "B", "C", "D"];
// 置換(第3引数に文字列指定あり)
// 0番目の要素を★に置換 → ["★","B","C","D"]
months.splice(0, 1, "★");
// 削除(第3引数が無い)
// 0番目の要素を削除 → ["B","C","D"]
months.splice(0, 1);
第1引数にマイナスを指定すれば、後ろから。
// 最後の要素を★に置換 → ["A","B","C","★"]
months.splice(-1, 1, "★");
第3引数以降も好きな数を指できる。
// 1番目から要素2つ分を★に置換 → ["A","★","★","D"]
months.splice(1, 2, "★", "★");
// 第2引数の数値と、第3引数以降の数を合わせないと、要素数が増減する
// ['A', '★', 'D']←要素2つ分置換(第二引数の値)となっているが、
// 第3引数しかないため、元の2番目の要素だったCが削除された
months.splice(1, 2, "★");
// 0番目から要素2つ分を削除 → ["C","D"]
months.splice(0, 2);