javascript - Inverse of [].filter in JS? - Stack Overflow
function unfilter(array, callback) { return array.filter(function () { return !callback.apply(this, arguments); }); }
apply()
・・・引数の配列を 1 つだけ受け取る
Function.prototype.apply() - JavaScript | MDN
実験
var nums = [11, 21, 31]; var test = unfilter(nums, function(number) { return number > 20; }); function unfilter(array, callback) { return array.filter(function() { console.log(arguments); // ここのログ return !callback.apply(this, arguments); }); } console.log(test);
arguments
の中身。
{ '0': 31, '1': 2, '2': [ 11, 21, 31 ] }