スプレッド構文

スプレッド構文とは

スプレッド構文(spread syntax)は ... (ドット3つ)で記述する方法で、配列やオブジェクトを展開するときに使用されます。

スプレッド構文の使い方

配列を展開しない場合

... をつけずに(展開せずに) drinks に文字列を追加して、新しい配列を作成します。

array.js
var drinks = ['コーヒー', '紅茶'];
// 展開せずに文字列追加
drinks = [drinks, 'ほうじ茶'];
console.log(drinks);

結果は多次元配列になってしまいます。

結果
[ [ 'コーヒー', '紅茶' ], 'ほうじ茶' ]

配列を展開する場合

...drinks(展開して) 文字列を追加して新しい配列を作成します。

array.js
var drinks = ['コーヒー', '紅茶'];
// 展開して文字列追加
drinks = [...drinks, 'ほうじ茶'];
console.log(drinks);

正しい配列で作成されました。

結果
["コーヒー", "ウーロン茶", "ほうじ茶"]

配列の追加・削除

配列はオブジェクトで、いくつかのプロパティやメソッドが用意されています。

push() メソッド

push()最後に要素に値を追加するメソッドです。

Array.push(value)

配列にデータ追加

drinks に「炭酸水」を追加します。

array.js
drinks.push('炭酸水');
console.log(drinks);
結果
["コーヒー", "紅茶", "ほうじ茶", "炭酸水"]

pop() メソッド

pop()最後の要素を削除するメソッドです。

Array.pop()

最後の要素を削除

drinks の最後の要素を削除します。

array.js
drinks.pop();
console.log(drinks);
結果
["コーヒー", "紅茶", "ほうじ茶"]

shift() メソッド

shift() は先頭の要素を削除するメソッドです。

Array.shift()

先頭の要素を削除

drinksの先頭の要素を削除します。

array.js
drinks.shift();
console.log(drinks)
結果
["紅茶", "ほうじ茶"]

unshift() メソッド

unshift() は先頭に要素を追加するメソッドです。

Array.unshift()

先頭にデータ追加

drinksの先頭に「コーヒー」を追加します。

array.js
drinks.unshift('アイスコーヒー');
console.log(drinks);
結果
["アイスコーヒー", "紅茶", "ほうじ茶"]

splice() メソッド

splice() メソッドは指定したインデックスから n番目の要素を削除または追加します。

指定インデックスでデータ追加

Array.splice(Index, n, value)

drinksの1番目の要素を1つ追加します。

array.js
drinks.splice(1, 0, "オレンジジュース");
console.log(drinks);
結果
["アイスコーヒー", "オレンジジュース", "紅茶", "ほうじ茶"]

指定インデックスで削除

Array.splice(Index, n)

drinksのインデックス「2」の要素を1つ削除します。

array.js
drinks.splice(2, 1);
console.log(drinks);
結果
["アイスコーヒー", "オレンジジュース", "ほうじ茶"]

インデックスの取得

指定した値が最初にみつかったインデックスを取得します。

Array.indexOf(value);

drinksから「ほうじ茶」のインデックスを取得します。

array.js
var index = drinks.indexOf('ほうじ茶');
console.log(index);
結果
2

演習

問題1

配列 cities をスプレッド構文で、new_city を追加してみましょう。

var cities = ['Tokyo', 'Osaka', 'Yokohama'];
var new_city = 'Nagoya';

問題2

配列 cities の最後に、new_city を追加してみましょう。

var cities = ['Tokyo', 'Osaka', 'Yokohama'];
var new_city = 'Nagoya';

問題3

配列 cities のインデックス「3」に、new_city を追加してみましょう。

var cities = ['Tokyo', 'Osaka', 'Yokohama'];
var new_city = 'Nagoya';