Sugar way to adapt the arguments signature of functions
npm install xbindSugar way to adapt the arguments signature of functions.
``javascript
var xbind = require('xbind');
var path = require('path');
function arrayify() {
var ret = [];
for (var i = 0, len = arguments.length; i < len; i++) {
ret.push(arguments[i]);
}
return ret;
}
console.log(
'arrayify just make an array from arguments',arrayify
arrayify(0,1,2,3)
)
// just make an array from arguments [ 0, 1, 2, 3 ]
console.log(
'use the first argument',
xbind(arrayify).xargs(0)(0,1,2,3)
)
// use the first argument [ 0 ]
console.log(
'use the first argument',
xbind(arrayify).first()(0,1,2,3)
)
// use the first argument [ 0 ]
console.log(
'use the last argument',
xbind(arrayify).last()(0,1,2,3)
)
// use the last argument [ 3 ]
console.log(
'use the first and third arguments',
xbind(arrayify).xargs(0,2)(0,1,2,3),
xbind(arrayify).xargs([0,2])(0,1,2,3)
)
// use the first and third arguments [ 0, 2 ] [ 0, 2 ]
console.log(
'append arguments 4,5',
xbind(arrayify).push(4,5)(0,1,2,3)
)
// append arguments 4,5 [ 0, 1, 2, 3, 4, 5 ]
console.log(
'prepend arguments 4,5',
xbind(arrayify).unshift(4,5)(0,1,2,3)
)
// prepend arguments 4,5 [ 4, 5, 0, 1, 2, 3 ]
console.log(
'slice arguments 1,3',
xbind(arrayify).slice(1,3)(0,1,2,3)
)
// slice arguments 1,3 [ 1, 2 ]
console.log(
'filter arguments',
xbind(arrayify).xargs(1,5).filter(Boolean)(0,1,2,3)
)
// filter arguments [ 1 ]
`
Return a new function with a xargs property, through which arguments can be changed.
Type: Function, String
Function to be bound. If String, it will be treated as a method name of ctx
Type: ObjectOptional
this value of fn when called.this
If not specified, will be this of xfn.
Select arguments with index1, index2
Select the first argument
Select the last argument
You can operate the argument list using .push, .pop, .shift, .unshift, .slice, .splice, .filter, .map, .reduce, as the argument list is Array.
Just return a function that returns o`