JSFiddle - React, Tailwind, and code Playground

JavaScript

function partialAny(fn) {
 var args = [].slice.call(arguments, 1);

	return function() {
  	var oldArgs = args.slice();    
  	var newArgs = [].slice.call(arguments);
    
    for(var i = 0; i < oldArgs.length; i++) {
    	if(oldArgs[i] === undefined) {
				oldArgs[i] = newArgs.shift();
      }
    }
    
    oldArgs = oldArgs.concat(newArgs);
    
    return fn.apply(null, oldArgs);
  }
}

function test(a, b, c) { return 'a=' + a + ',b=' + b + ',c=' + c; }
//var test1_3 = partialAny(test, 1, undefined, 3);
console.log(partialAny(test, 1, undefined,3)(5)); // a=1,b=5,c=3