本記事では、Reactで配列に代入されている複数の値を表示(展開)する方法について解説しています。
Reactの学習におすすめ書籍
モダンJavaScriptの基本から始める React実践の教科書
メリット
- JavaScriptの基礎から始めてReactの機能を一通り学べる
- 実務で必要となる知識を意識しながら学習を進められる
- 現場のシチュエーションベースのストーリーで技術解説
楽天ブックス
¥2,860 (2025/01/10 11:38時点 | 楽天市場調べ)
ポチップ
先輩くん
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!
全プログラマー必見!
変数名/関数名にもう悩まない!
変数名/関数名にもう悩まない!
リーダブルコード
メリット
- 美しいコードが書けるが自然と書けるようになる
- 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次
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の構文に加工し新しい配列に追加します。後は、展開したい場所で{配列の変数名}を記述します。