なんだかGoodVibes

日々の勉強メモです。

【Node】sliceとsplice

あけましておめでとうございます。
2020年最初の記事は、配列の一部を取得するメソッドです。

配列の一部を取得するメソッドは
slicespliceがありますね。
似ているようで異なるもの。
2つのメソッドの違いを紹介します。


slice

使い方は、.slice(開始,終了)とします。
終了を指定しなかった場合、末尾まで取得します。 では、サンプルです。

var a1 = [1,2,3,4,5,6];
var a2 = a1.slice(2,4);
var a3 = a1.slice(2);
console.log('a1 = ' + a1);
console.log('a2 = ' + a2);
console.log('a3 = ' + a3);

結果は以下。

a1 = 1,2,3,4,5,6
a2 = 3,4
a3 = 3,4,5,6

元の配列(a1)を変えることなく、指定した範囲を取得しています。
ちなみに、文字列にも使えます。

var s1 = 'abcdefg';
var s2 = s1.slice(0,3);
console.log('s1 = ' + s1);
console.log('s2 = ' + s2);

結果は以下。

s1 = abcdefg
s2 = abc

文字列も同様に元の文字列を変更することなく
指定した範囲を取得できていますね。


splice

使い方は.splice(開始,要素数)とします。
素数を指定しなかった場合、末尾までとなります。
では、サンプル。

var b1 = [1,2,3,4,5,6];
var b2 = b1.splice(2,3);
console.log('b1 = ' + b1);
console.log('b2 = ' + b2);

結果は以下。

b1 = 1,2,6
b2 = 3,4,5

なんと、元の配列も変わっています。
spliceは、元の配列から指定した部分を取り出すのです。
なので、分割したいときなどに使用するメソッドです。
こちらは文字列には使用できません。


以上です。
似ているけど元の配列への影響が異なるので
使用する際は適したものを使用しなければいけないですね。