30秒ぐらいで理解できるjavascriptと書いてあったのですが
5分ぐらいみたのですが、ワケガワカラナイヨ状態
n追加の引数を無視して、引数まで受け入れる関数を作成します。
提供された関数を、引数fnまで、with およびspread演算子()で呼び出します。
const ary = (fn, n) => (...args) => fn(...args.slice(0, n)); //例 const firstTwoMax = ary(Math.max, 2); [[2, 6, 'a'], [8, 4, 6], [10]].map(x => firstTwoMax(...x));
本当に頭の上に?(はてな)しかでない
アロー関数で作られているのを見るのが苦手!!アロー関数じゃない形にして解析する事にしました
変換ツールはかの有名なbabelです
'use strict'; function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } var ary = function ary(fn, n) { return function () { for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return fn.apply(undefined, _toConsumableArray(args.slice(0, n))); }; }; var firstTwoMax = ary(Math.max, 2); [[2, 6, 'a'], [8, 4, 6], [10]].map(function (x) { return firstTwoMax.apply(undefined, _toConsumableArray(x)); });
30秒は無理!!
実は新人にむけていい教材がないのかなと探していたが
自分ができないという事が証明された~
コツコツ勉強していきます