React.jsの勉強中にちょっとハマったのでメモ。

タイトルのとおり、JSXでfor文のようなループ処理を書く方法を紹介する。

map関数を使ってループする

Reactコンポーネントのrender関数を例に、3回ループする処理を書いてみた。

render() {
	return(
		<div>
			{
				Array(3).fill('test').map((val, i) => {
					return (
						<div>{val}, {i}</div>
					);
				})
			}
		</div>
	);
}

上記の出力結果は以下のとおりとなる。

test, 0
test, 1
test, 2

2重ループ処理

for文をネストした多重ループ処理も、マップ関数を使ってJSXでも同様の処理を行うことができる。

render() {
	return(
		<div>
			{
				Array(3).fill('test').map((val, i) => {
					return (
						Array(3).fill(0).map((val2, j) => {
							return (
								<div>
									{i}, {j}
								</div>
							);
						})
					);
				})
			}
		</div>
	);
}

このrender関数の実行結果は以下のとおりとなる。

0, 0
0, 1
0, 2
1, 0
1, 1
1, 2
2, 0
2, 1
2, 2