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

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

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

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

Q&A

解決済

2回答

859閲覧

JavaScript map、引数につきまして

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

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

0グッド

0クリップ

投稿2018/05/25 03:59

編集2018/05/25 04:08

先ほど、二次元配列を引数にとり、各配列の最大値を要素とする配列を返す関数を作れ、という課題について質問をさせていただきました。

function largestOfFour(arr) { return arr.map(function(a){Math.max.apply(null,a)}); }

その後、自分でこのような関数を書いてみたのですが、
(4) [undefined, undefined, undefined, undefined]
という結果になってしまいます。

原因を教えていただけないでしょうか?

*追記です。

function largestOfFour(arr) { return arr.map(function(a){ return Math.max.apply(null,a)}); }

上記の関数の代わりにこちらのものを使う利点?のようなものはあるのでしょうか?
function largestOfFour(arr) {
return arr.map(Function.apply.bind(Math.max, null));
}

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

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

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

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

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

HayatoKamono

2018/05/25 04:11

回答がついた後の追加質問は新規に質問を作成して頂いた方が助かります。質問と回答が合わなくなるので。
退会済みユーザー

退会済みユーザー

2018/05/25 04:20

承知しました。お手数をおかけしました。また、アカウントの件ですが、知らない間に切り替わっていたので、今後気を付けたいと思います。
guest

回答2

0

ベストアンサー

return Math.max.apply(null, a)

return してないからですね。

上記の関数の代わりにこちらのものを使う利点?のようなものはあるのでしょうか?

特にこの場合は無いと思います。

先ほど、二次元配列を引数にとり、各配列の最大値を要素とする配列を返す関数を作れ、という課題について質問をさせていただきました。

こちらの質問のことでしょうか? それでしたら、関連性が追えなくなるので、同じアカウントで質問して下さい。
https://teratail.com/questions/127881

投稿2018/05/25 04:04

編集2018/05/25 04:17
HayatoKamono

総合スコア2415

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

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

退会済みユーザー

退会済みユーザー

2018/05/25 04:06

見落としてました... ありがとうございます。
guest

0

追記部分についての回答をさせてください

returnを忘れたこと」がまさにbindを使うべき理由じゃないかと思います。

"この問題"ではなく一般的な意味で質問を理解すると、bindでできることは、自前で実装できる、bindを使う利点はあるか、という質問に相当するように思えました。
こう考えたとき、"bindが実施することを自分で書くことはできるけれども(それはbindだけじゃなく既存のどのような実装についても言えます)、一般に個々人が実装するより標準的な関数を使ったほうが安全"というのが回答になり得る。

--蛇足
前回の質問経緯などからすると、(教育的な)本来的な流れとしては、学生が色々なものを自前で実装していくなかで、applyがあるとか、bindがあるとか、mapがあるとかを発見してほしいのだと思われるので、質問者さんのように疑問を持つ方にすれば、そういう試行錯誤のステップを経ずに、究極的な回答が出されたことは好ましくなかったように思われます。
(多分、maxをminにしてみるとか、四捨五入するとか、色々な亜種をやってみると、bindの便利さが見えたように思えます)

投稿2018/05/25 04:34

papinianus

総合スコア12705

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

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

退会済みユーザー

退会済みユーザー

2018/05/25 06:13

ご返信が遅くなりました。 ご意見まことにありがとうございます。 大変参考になりました。 bindの亜種に関して、自分で試行錯誤してみようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問