JSFiddle - React, Tailwind, and code Playground
JavaScript
function partialAny(){
var func = arguments[0];
var args = [].slice.call(arguments, 1);
return function(){
var added = false;
var innerArgs = args.slice(0);
for(var i = 0; i<arguments.length; i++){
if(arguments[i]!==undefined){
for(var n = 0; n<innerArgs.length; n++){
if(innerArgs[n]===undefined){
innerArgs[n] = arguments[i];
added = true;
break;
}
}
if(!added){innerArgs.push(arguments[i]); added=false}
}
}
return func.apply(this, innerArgs);
}
}
function test(a, b, c, d) { return [].slice.call(arguments); }
console.log(partialAny(test, undefined, 1, undefined, 2, undefined, 4)(7));