React

【React】配列に代入されている複数の値を表示する方法

本記事では、Reactで配列に代入されている複数の値を表示(展開)する方法について解説しています。

Reactの学習におすすめ参考書
モダンJavaScriptの基本から始める React実践の教科書

本書情報
著者岡田 拓巳
発売日2021/9/17
ページ数272ページ
Kindle版
レビュー
(Amazon)
(152件)
先輩くん
先輩くん
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
後輩ちゃん
後輩ちゃん
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!

綺麗なコードが書けるようになる!
リーダブルコード-より良いコードを書くためのシンプルで実践的なテクニック

本書情報
出版社オライリージャパン
著者Dustin Boswell / Trevor Foucher
発売日2012/6/23
ページ数260ページ
レビュー
(Amazon)
(620件)
先輩くん
先輩くん
より良いコードを書きたい人におすすめの本だよ!
後輩ちゃん
後輩ちゃん
10以上前の書籍ですが、内容は今でも役に立つものばかりです!

mapメソッドを使う

配列に代入されている複数の値を表示させるには、一般的にJavaScriptのmapメソッドを使用します。

mapメソッドについて簡単に説明すると、引数にコールバック関数を設定します。コールバック関数の第一引数には配列要素が先頭から順に一つずつ代入されます。

function App() {
  const fruitsArr = ["リンゴ", "バナナ", "ブドウ", "イチゴ"];

  return (
    <ul>
      {fruitsArr.map((fruits) => (
        <li key={fruits}>{fruits}</li>
      ))}
    </ul>
  );
}

上記のコードはフルーツの名前が代入されている配列要素を一つずつliタグに展開します。注目すべきポイントは、「key={fruits}」です。

mapメソッドで複数の配列要素を展開する時は、必ずkey属性に一意の値を指定する必要があります。もし、key属性の設定を忘れると「Warning: Each child in a list should have a unique “key” prop.」のエラーがコンソールに表示されます。

おまけ for文を使った書き方

皆さんが使い慣れているfor文/for…of文はreturnの中で記述することが出来ないため、mapメソッドのような使い方は出来ませんが実装することは可能です。

// for文
function App() {
  const fruitsArr = ["リンゴ", "バナナ", "ブドウ", "イチゴ"];
  const newFruitsArr = [];

  for (let i = 0; i < fruitsArr.length; i++) {
    newFruitsArr.push(<li key={fruitsArr[i]}>{fruitsArr[i]}</li>);
  }
  return <ul>{newFruitsArr}</ul>;
}
// for...of文
function App() {
  const fruitsArr = ["リンゴ", "バナナ", "ブドウ", "イチゴ"];
  const newFruitsArr = [];

  for (let value of fruitsArr) {
    newFruitsArr.push(<li key={value}>{value}</li>);
  }
  return <ul>{newFruitsArr}</ul>;
}

export default App;

対象の配列をfor文/for…of文でループさせ、JSXの構文に加工し新しい配列に追加します。後は、展開したい場所で{配列の変数名}を記述します。

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村