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

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

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

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

Q&A

解決済

4回答

2050閲覧

forEach()のcallbackの引数名は決まっているのでしょうか?

taka_oct092018

総合スコア133

JavaScript

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

0グッド

0クリップ

投稿2019/07/10 12:25

currentValue,index,arrayの3種類に決まっているのでしょうか?
それとも、自由に定義出来るのでしょうか?

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/07/10 12:41

ここで質問するより、ブラウザで試したほうが早くないですか?
guest

回答4

0

ベストアンサー

決まっていません。何でもいいです。
定義する引数の個数も0個~3個のどれでもいいです。
必要なものだけ定義すればいいと思います。
必要なければ何も定義しなくて構いません。

JavaScript

1var arr = ["a", "b", "c"]; 2 3arr.forEach(function() { 4 // 引数はないがループはする 5}); 6 7arr.forEach(function(v) { 8 // vにcurrentValueが入っている 9}); 10 11arr.forEach(function(v, i) { 12 // vにcurrentValue、iにindexが入っている 13}); 14 15arr.forEach(function(v, i, a) { 16 // vにcurrentValue、iにindex、aにarrayが入っている 17});

投稿2019/07/10 12:52

root_jp

総合スコア4666

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

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

taka_oct092018

2019/07/10 13:28

具体的で丁寧な回答をありがとうございます。 とても勉強になりました。
guest

0

引数名は決まっていないです。
どのように返しているかはconsole.logを入れるとわかります。

var arr = [1, 2, 3]; arr.forEach(console.log); // arr.forEach(function callback(currentValue [, index [, array]]) // 以下の結果から引数が3つあることがわかる // 1 0 [1, 2, 3] // 2 1 [1, 2, 3] // 3 2 [1, 2, 3]

投稿2019/07/10 13:13

yasutomi

総合スコア2937

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

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

guest

0

引数名は決まっていません。その時々で適切な名前に変えて大丈夫です。
だからといって第二引数に value という名前を与えても、インデックスが渡されます。

js

1// value でも良いが、それが HTMLElement であることがわかるように、 elm と名付ける 2[...document.getElementsByTagName('foo')].forEach(elm => console.log(elm));

js

1// かならず値、インデックス、もとの配列、の順番で与えられるので、変数名だけ変えても意味はない 2['foo', 'bar', 'baz'].forEach((val, idx, arr) => console.log(val, idx, arr)) 3/* 4foo 0 (3) ["foo", "bar", "baz"] 5bar 1 (3) ["foo", "bar", "baz"] 6baz 2 (3) ["foo", "bar", "baz"] 7*/ 8 9['foo', 'bar', 'baz'].forEach((idx, arr, val) => console.log(val, idx, arr)) 10/* 11(3) ["foo", "bar", "baz"] "foo" 0 12(3) ["foo", "bar", "baz"] "bar" 1 13(3) ["foo", "bar", "baz"] "baz" 2 14*/

投稿2019/07/10 13:11

thyda.eiqau

総合スコア2982

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

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

guest

0

自由に決められます。a,b,cでもokです。第二引数、第三引数を利用しないのなら省略しても構いません。


追記
引数は0個でも大丈夫だそうですね・・・

投稿2019/07/10 13:00

編集2019/07/10 13:03
hood

総合スコア351

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問