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

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

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

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

3回答

1320閲覧

map()の配列の処理について

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2018/11/01 11:21

map()についてなのですが理解が合っているか不安なため質問させていただきます。

下のコードで、map(editElement);とあるのですが、
mapは配列を順番に取り出して処理するため仮にinputsの値が[apple, ora]だとすると、
editElement呼び出す時にはeditElement("apple")、次にeditElement("org")と引数を持った状態でeditElementという関数が呼び出されるのでしょうか?

js

1var fruits = ['apple', 'apricot', 'avocado', 'blueberry', 'cherry', 'coconut', 'cranberry', 'dragonfruit', 'durian', 'grape', 'grapefruit', 'guava', 'kiwi fruit', 'lemon', 'lime', 'lychee', 'mango', 'melon', 'watermelon', 'miracle fruit', 'orange', 'bloodorange','clementine','mandarine','tangerine','papaya','passionfruit','peach','pear','persimmon','physalis','plum/prune','pineapple','pomegranate','raspberry','rambutan','star fruit','strawberry']; 2 3$(function() { 4 var list = $("#list"); 5 6 function appendList(word) { 7 var item = $('<li class="list">').append(word); 8 list.append(item); 9 } 10 11 function editElement(element) { 12 console.log(element); 13 var result = "^" + element; 14 return result; 15 } 16 17 $("#submit").on("click", function() { 18 var input = $("#keyword").val(); 19 var inputs = input.split(" "); //split() 20 var newInputs = inputs.map(editElement); 21 var reg = RegExp(newInputs.join("|")); 22 23 $(".list").remove(); 24 25 $.each(fruits, function(i, fruit) { 26 if (fruit.match(reg)) { 27 appendList(fruit); 28 } 29 }); 30 31 if ($(".list").length === 0) { 32 appendList("一致する果物はありませんでした"); 33 } 34 }); 35});

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

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

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

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

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

m.ts10806

2018/11/01 11:30

これは「Yes」だけの回答で良いのでしょうか。
m.ts10806

2018/11/01 11:31

自身でもconsole.log()でデバッグされているため、動いたとおりにしかならない・・と思うのですけど。
退会済みユーザー

退会済みユーザー

2018/11/01 11:32

理解が合っているか不安だったため合って入ればYes。間違って入れば指摘して欲しく思い質問させていただきました。
m.ts10806

2018/11/01 11:34

仕様を確認したかどうかは書かれたほうが良いかもしれません。ドキュメントが一番正しいので。
退会済みユーザー

退会済みユーザー

2018/11/01 11:39

ドキュメントを一応目を通していますが、もう少し分かりやすい質問を心がけます。ご指摘ありがとうございます。
guest

回答3

0

ベストアンサー

そうです。editElement("apple")が実行され、次にeditElement("org")が実行されるで合ってます。

投稿2018/11/01 11:27

root_jp

総合スコア4666

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

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

退会済みユーザー

退会済みユーザー

2018/11/01 11:28

合っていて良かったです!最初引数は??って状態だったのでこれで理解できました。
root_jp

2018/11/01 11:30

そして、mapの実行結果は ["^apple", "^org"] となった配列ってことですね。
退会済みユーザー

退会済みユーザー

2018/11/01 11:42

consoleで確認できました!回答ありがとうございました。
guest

0

はい、その通りです。

配列の各要素を順番に引数に割り当てて関数呼び出しします

投稿2018/11/01 11:28

papinianus

総合スコア12705

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

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

退会済みユーザー

退会済みユーザー

2018/11/01 11:37

良かったです。回答ありがとうございます!!
guest

0

inputs.map(editElement);

editElementをコールバックに要素を渡して戻り値を配列に返してますね
もうすこし効率的な処理ができそうなのでちょっと微妙な感じはしますが

投稿2018/11/01 11:32

yambejp

総合スコア114572

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

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

退会済みユーザー

退会済みユーザー

2018/11/01 11:38

考えてみます。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問