JavaScriptのspliceにおける小数点切り捨てと配列中間挿入

JavaScriptのspliceとは

JavaScriptのspliceとは日本語では「継ぎ合わせる」という意味で配列の値を「継ぎ合わせる」ためのもの…と勘違いされることがある。

実際は要素の削除にも使用される。

var arr = ['a', 'b', 'c']
arr.splice(1, 0, 'X') // 継ぎ合わせる
console.log(arr) // ['a', 'X', 'b', 'c'] 

var arr = ['a', 'b', 'c']
arr.splice(1, 1) // 削除する
console.log(arr) // ['a', 'c'] 

spliceで配列の中間に挿入

前述の通りspliceを使用すれば値を挿入できる。

spliceは第1引数に挿入場所を指定するので配列のlengthを2で割れば配列の中間に値を挿入することができる。

配列のlengthを2で割れば1.5など小数点が発生するケースもあるが、spliceでは小数点は自動的に切り捨てとなるためエラーにはならない。

var arr = ['a', 'b', 'c', 'd']
arr.splice(arr.length / 2, 0, 'X', 'Y') // 配列の中間に挿入
console.log(arr) // ["a", "b", "X", "Y", "c", "d"]

var arr = ['a', 'b', 'c']
arr.splice(arr.length / 2, 0, 'X', 'Y') // 1.5は切り捨てられて1となる
console.log(arr) // ["a", "X", "Y", "b", "c"]

余談だが挿入する値が多い場合はスプレッド演算子を使用したほうがコードが見やすい。

var arr = ['a', 'b', 'c', 'd']
var xyz = ['X', 'Y', 'Z']
arr.splice(arr.length / 2, 0, ...xyz) // 配列の中間に挿入
console.log(arr) // ["a", "b", "X", "Y", "Z", "c", "d"]