質問: reject(numbers, function(number){ return number > 15; }); lessThanFifteen; 結果:[10] ``` **下記が正解なのですが、構文がやはり分からないです。** ``` function reject(array, iteratorFunction) { return array.filter((element) => { return !iteratorFunction(element); }); } ``` iteratorFunctionこれは無名関数のようなものですか。 `!iteratorFunction`の前にあるビックリマークがおそらくFalseの場合にリターンを意味すると思うのですが、これは`iteratorFunction(element)`を実行して返ってくる変数に対して行われているんですか? コードの参照先
回答: こんにちわ。array.filterを用いた、rejectという関数を実装例にしたがって実装せよという課題なのでしょうか? 実装例からrejectは一番目の引数に配列、二番目に関数(array.filterが使用する)をうけとるということがわかります。 ここでまずあなたが関数の概念を理解してるか再確認してください。関数の引数にはオブジェクトでも無名関数でも受け取ることができます。 次にarrray.filterは入力された配列の要素を評価関数で評価しマッチしないものを取り除いた新しい配列を作成するものです。 !とか不等号とかは先の方のコメント通りの意味です。 演算子は把握しないとプログラムの作成は大変です。 でも正直課題の回答としては問題をややこしくしてるだけで 個人的には難ありと思いました 実際はrejectなんて関数作らなくてもnumbers.filterしてしまえば、スッキリしますね。問題を理解したらnumbers.filterで処理する例を検討されてはどうでしょうか。