start mesh api. add function wrapper for array arguments unroll

This commit is contained in:
Stewart Allen 2021-12-29 21:52:24 -05:00
commit a1644ed609
6 changed files with 83 additions and 7 deletions

View file

@ -173,6 +173,24 @@
return this.filter(v => isNaN(v)).length > 0;
};
// wrap a function and unroll the first parameter into
// successive function calls if it is an array
Array.handle = function(fn) {
return function() {
let args = [...arguments];
let val = args.shift();
if (Array.isArray(val)) {
let rv = [];
for (let v of val.slice()) {
rv.push(fn(v, ...args));
}
return rv;
} else {
return fn(val, ...args);
}
}
};
for (let i in AP) {
Object.defineProperty(Array.prototype, i, {
value: AP[i],