#51 JavaScriptの学習 配列の操作push,forEach,find,filter,mapを覚えよう

プログラミング プログラミング

配列を操作してみましょう。push,forEach,find,filter,mapはどんなメソッドなのか学んでみよう。とても簡単なので是非覚えてくださいね。内容は初心者向けです。

push

push・・・配列の要素を追加します。

配列名.push(追加する要素); このように記述します。

  1. const moji = ['あ', 'い', 'う'];
  2. console.log(moji);
  3. //→['あ', 'い', 'う']
  4. moji.push('え', 'お');
  5. console.log(moji);
  6. //→['あ', 'い', 'う', 'え', 'お']

「あ、い、う」という配列に「え、お」を追加することが出来ました。

forEach

forEach・・・配列の要素を1つずつ取り出して、処理する

定数名.forEach((引数) => {処理}); このように記述します。

  1. const moji = ['あ', 'い', 'う', 'え', 'お'];
  2. moji.forEach((get) => {
  3.     console.log(get);
  4. });
  5. // →あ
  6. // →い
  7. // →う
  8. // →え
  9. // →お

配列の要素を引数(get)に入れ、1つずつ処理をしています。今回の処理はコンソールして表示しています。

find

find・・・条件に合う、1つ目の要素を取り出します。複数ある場合は最初に見つけた要素を取り出します。

①配列の場合 ②オブジェクトの場合 ③条件に合う要素が無い場合 について比較してみましょう。

①配列の場合

  1. // 1、配列の場合
  2. const numbers = ['1', '9', '25', '32'];
  3. const result = numbers.find(
  4.     (number)=>{return number > 20} //20より大きい数を取得
  5. );
  6. console.log(result);
  7. // →25 最初の1つだけ取得する

要素 1,9,25,32の中で20より大きい数を取得すると最初の25のみ取得できます。

②オブジェクトの場合

  1. // 2、オブジェクトの場合
  2. const animals = [
  3.     {name: 'monkey', place: 'tokyo'},
  4.     {name: 'dog', place: 'nagoya'},
  5.     {name: 'cat', place: 'fukuoka'},
  6. ];
  7. const result2 = animals.find(
  8.     (animal)=>{return animal.place == 'nagoya'} //'nagoya'と一致するオブジェクトを取得
  9. );
  10. console.log(result2);
  11. // →{name: 'dog', place: 'nagoya'}
  12. // オブジェクトそのものが取り出される

この場合はオブジェクトそのものが取得できる

③条件に合う要素が無い場合

  1. // 3、条件に合う要素が無い場合
  2. const fruits = ['orange', 'apple', 'melon'];
  3. const result3 = fruits.find(
  4.     (fruit)=>{return fruit == 'banana'} //'banana'と一致するオブジェクトを取得しようとするが存在しない
  5. );
  6. console.log(result3);
  7. // →undefined

このように、配列に要素が存在しない場合は「undefined」が返されます。

filter

filter・・・上の「find」は条件に合う要素が1つしか取り出せません。すべて取得したい時に使います。配列の要素やオブジェクトとして取得します。取得後は配列となります。

  1. // 1、配列の場合
  2. const numbers = ['1', '9', '25', '32'];
  3. const result = numbers.filter(
  4.     (number)=>{return number > 20} //20より大きい数を取得
  5. );
  6. console.log(result);
  7. // →['25', '32'] すべて取得する
  8. // 2、オブジェクトの場合
  9. const animals = [
  10.     {name: 'monkey', place: 'tokyo'},
  11.     {name: 'dog', place: 'nagoya'},
  12.     {name: 'cat', place: 'fukuoka'},
  13.     {name: 'lion', place: 'nagoya'},
  14. ];
  15. const result2 = animals.filter(
  16.     (animal)=>{return animal.place == 'nagoya'} //'nagoya'と一致するオブジェクトを取得
  17. );
  18. console.log(result2);
  19. // →[{name: 'dog', place: 'nagoya'}, {name: 'lion', place: 'nagoya'}]
  20. // オブジェクトそのものが取り出される

map

map・・・要素を1つずつ取り出して、同じ処理を行い、新しい配列を作る

  1. const family = [
  2.     {name: 'お父さん', age: '40'},
  3.     {name: 'お母さん', age: '38'},
  4.     {name: 'お兄ちゃん', age: '12'},
  5. ];
  6. const result4 = family.map((person)=>{return '私の' + person.name + 'は' + person.age + 'です'});
  7. // ['私のお父さんは40です', '私のお母さんは38です', '私のお兄ちゃんは12です'] このような配列になっています。
  8. result4.forEach((per)=>{return console.log(per)});
  9. // →私のお父さんは40です
  10. // →私のお母さんは38です
  11. // →私のお兄ちゃんは12です

新しい配列を生成しているのがわかりますか?forEachもからめてみました。

配列の操作の基本的なメソッドでした。

関連記事
配列の要素の数を数えてみよう
配列の取得・更新・追加・削除出来るかな?
存在しない要素には「undefined」が返ってくる

コメント