質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
ECMAScript

ECMAScriptとは、JavaScript類の標準を定めるために作られたスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

13652閲覧

React.jsでmapの代わりにforEachは使えないのか

退会済みユーザー

退会済みユーザー

総合スコア0

ECMAScript

ECMAScriptとは、JavaScript類の標準を定めるために作られたスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2020/09/09 09:45

reactを学習しています。
配列をmapで回してリストを作ることができたのですが、
以下のコードのmapの箇所をforEachに書き換えると表示することができませんでした。

ReactではforEachではなくmapを使わないといけないのでしょうか?

<!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>React</title> <script src="https://unpkg.com/react@16/umd/react.development.js"></script> <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script> <script src="https://unpkg.com/babel-standalone@6.26.0/babel.js"></script> </head> <body> <h1>React</h1> <div id="root">wait...</div> <script type="text/babel"> let dom = document.querySelector('#root'); const table = { fontSize: "16pt", padding: "5px 50px", } const th = { color:'white', backgroundColor:'#006', padding:'5px 15px', } const td = { color:'black', padding:'5px 15px', border:'1px solid gray', } let data = [ {name:'Taro', mail:'taro@yamada', age:45}, {name:'Hanako', mail:'hanako@flower', age:37}, {name:'Sachiko', mail:'sachiko@happy', age:29} ]; let el = ( <div> <table style={table}> <tr> <th style={th}>name</th> <th style={th}>mail</th> <th style={th}>age</th> </tr> {data.map((value) =>( <tr> <td style={td}>{value.name}</td> <td style={td}>{value.mail}</td> <td style={td}>{value.age}</td> </tr> ))} </table> </div> ); ReactDOM.render(el, dom); </script> </body> </html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ReactではforEachではなくmapを使わないといけないのでしょうか?

そんなことはないです。
mapの戻り値が配列なので質問文中の記法で成立しているだけなので、forEachで置き換えたかったら下記のようにすれば動作するかと思います。

javascript

1{(() => { 2 let elements = []; 3 data.forEach((value) => { 4 elements.push( 5 <tr> 6 <td style={td}>{value.name}</td> 7 <td style={td}>{value.mail}</td> 8 <td style={td}>{value.age}</td> 9 </tr> 10 ); 11 }); 12 return elements; 13})()}

このケースならmapでもいいような気がしますが、念のためmapforEachそれぞれの違いが分かりやすい記事を載せておきます。

質問の本筋とは外れますが、この場合trkeyをつけた方がいいと思います。

投稿2020/09/09 09:52

nekoniki

総合スコア2411

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/09/09 10:37

理解いたしました!参考記事までありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問