github.com
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です
babeljs.io
'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秒は無理!!
実は新人にむけていい教材がないのかなと探していたが
自分ができないという事が証明された~
コツコツ勉強していきます