@vect/entries-zipper
Advanced tools
Comparing version 0.3.10 to 0.4.0
@@ -12,11 +12,11 @@ 'use strict'; | ||
} = this; | ||
value = value || key, lo = lo || 0, hi = hi || (ea === null || ea === void 0 ? void 0 : ea.length); | ||
const entries = Array(hi); | ||
value = value ?? key, hi = hi ?? (ea == null ? void 0 : ea.length); | ||
const zip = Array(hi); | ||
for (let i = --hi, a, b; i >= lo; i--) { | ||
for (let i = lo ?? 0, a, b; i < hi; i++) { | ||
a = ea[i], b = eb[i]; | ||
entries[i] = [key(a[0], b[0], i), value(a[1], b[1], i)]; | ||
zip[i] = [key(a[0], b[0], i), value(a[1], b[1], i)]; | ||
} | ||
return entries; | ||
return zip; | ||
} | ||
@@ -30,11 +30,11 @@ function trizipper(ea, eb, ec) { | ||
} = this; | ||
value = value || key, lo = lo || 0, hi = hi || (ea === null || ea === void 0 ? void 0 : ea.length); | ||
const entries = Array(hi); | ||
value = value ?? key, hi = hi ?? (ea == null ? void 0 : ea.length); | ||
const zip = Array(hi); | ||
for (let i = --hi, a, b, c; i >= lo; i--) { | ||
for (let i = lo ?? 0, a, b, c; i < hi; i++) { | ||
a = ea[i], b = eb[i], c = ec[i]; | ||
entries[i] = [key(a[0], b[0], c[0], i), value(a[1], b[1], c[1], i)]; | ||
zip[i] = [key(a[0], b[0], c[0], i), value(a[1], b[1], c[1], i)]; | ||
} | ||
return entries; | ||
return zip; | ||
} | ||
@@ -48,11 +48,11 @@ function quazipper(ea, eb, ec, ed) { | ||
} = this; | ||
value = value || key, lo = lo || 0, hi = hi || (ea === null || ea === void 0 ? void 0 : ea.length); | ||
const entries = Array(hi); | ||
value = value ?? key, hi = hi ?? (ea == null ? void 0 : ea.length); | ||
const zip = Array(hi); | ||
for (let i = --hi, a, b, c, d; i >= lo; i--) { | ||
for (let i = lo ?? 0, a, b, c, d; i < hi; i++) { | ||
a = ea[i], b = eb[i], c = ec[i], d = ed[i]; | ||
entries[i] = [key(a[0], b[0], c[0], d[0], i), value(a[1], b[1], c[1], d[1], i)]; | ||
zip[i] = [key(a[0], b[0], c[0], d[0], i), value(a[1], b[1], c[1], d[1], i)]; | ||
} | ||
return entries; | ||
return zip; | ||
} | ||
@@ -116,37 +116,64 @@ /** | ||
* | ||
* @param {[*,*][]} ea | ||
* @param {[*,*][]} eb | ||
* @param {[*,*][]} entA | ||
* @param {[*,*][]} entB | ||
* @param {function} keyMap | ||
* @param {function} [valMap] | ||
* @param {number} [l] | ||
* @param {number} [hi] | ||
* @returns {[*,*][]} | ||
*/ | ||
const zipper = (ea, eb, keyMap, valMap, l) => duozipper.call({ | ||
const zipper = (entA, entB, keyMap, valMap, hi) => duozipper.call({ | ||
key: keyMap, | ||
value: valMap, | ||
hi: l | ||
}, ea, eb); | ||
hi | ||
}, entA, entB); | ||
/** | ||
* | ||
* @param {[*,*][]} ea | ||
* @param {[*,*][]} eb | ||
* @param {[*,*][]} entA | ||
* @param {[*,*][]} entB | ||
* @param {function} keyMap | ||
* @param {function} [valMap] | ||
* @param {number} [l] | ||
* @param {number} [hi] | ||
* @returns {[*,*][]} | ||
*/ | ||
const mutazip = (ea, eb, keyMap, valMap, l) => { | ||
l = l || (ea === null || ea === void 0 ? void 0 : ea.length), valMap = valMap || keyMap; | ||
const mutazip = (entA, entB, keyMap, valMap, hi) => { | ||
hi = hi ?? (entA == null ? void 0 : entA.length), valMap = valMap ?? keyMap; | ||
for (let a, b, i = 0; i < l && (a = ea[i]) && (b = eb[i]); i++) a[0] = keyMap(a[0], b[0], i), a[1] = valMap(a[1], b[1], i); | ||
for (let i = 0, a, b; i < hi && (a = entA[i]) && (b = entB[i]); i++) { | ||
a[0] = keyMap(a[0], b[0], i); | ||
a[1] = valMap(a[1], b[1], i); | ||
} | ||
return ea; | ||
return entA; | ||
}; | ||
/** | ||
* | ||
* @param {[*,*][]} entA | ||
* @param {[*,*][]} entB | ||
* @param {function} keyAction | ||
* @param {function} [valueAction] | ||
* @param {number} [hi] | ||
* @returns {[*,*][]} | ||
*/ | ||
const iterzip = (entA, entB, keyAction, valueAction, hi) => { | ||
hi = hi ?? (entA == null ? void 0 : entA.length), valueAction = valueAction ?? keyAction; | ||
for (let i = 0, a, b; i < hi && (a = entA[i]) && (b = entB[i]); i++) { | ||
keyAction(a[0], b[0], i); | ||
valueAction(a[1], b[1], i); | ||
} | ||
return void 0; | ||
}; | ||
exports.Duozipper = Duozipper; | ||
exports.Quazipper = Quazipper; | ||
exports.Trizipper = Trizipper; | ||
exports.duozipper = duozipper; | ||
exports.iterzip = iterzip; | ||
exports.mutazip = mutazip; | ||
exports.quazipper = quazipper; | ||
exports.trizipper = trizipper; | ||
exports.zipper = zipper; |
@@ -8,11 +8,11 @@ function duozipper(ea, eb) { | ||
} = this; | ||
value = value || key, lo = lo || 0, hi = hi || (ea === null || ea === void 0 ? void 0 : ea.length); | ||
const entries = Array(hi); | ||
value = value ?? key, hi = hi ?? (ea == null ? void 0 : ea.length); | ||
const zip = Array(hi); | ||
for (let i = --hi, a, b; i >= lo; i--) { | ||
for (let i = lo ?? 0, a, b; i < hi; i++) { | ||
a = ea[i], b = eb[i]; | ||
entries[i] = [key(a[0], b[0], i), value(a[1], b[1], i)]; | ||
zip[i] = [key(a[0], b[0], i), value(a[1], b[1], i)]; | ||
} | ||
return entries; | ||
return zip; | ||
} | ||
@@ -26,11 +26,11 @@ function trizipper(ea, eb, ec) { | ||
} = this; | ||
value = value || key, lo = lo || 0, hi = hi || (ea === null || ea === void 0 ? void 0 : ea.length); | ||
const entries = Array(hi); | ||
value = value ?? key, hi = hi ?? (ea == null ? void 0 : ea.length); | ||
const zip = Array(hi); | ||
for (let i = --hi, a, b, c; i >= lo; i--) { | ||
for (let i = lo ?? 0, a, b, c; i < hi; i++) { | ||
a = ea[i], b = eb[i], c = ec[i]; | ||
entries[i] = [key(a[0], b[0], c[0], i), value(a[1], b[1], c[1], i)]; | ||
zip[i] = [key(a[0], b[0], c[0], i), value(a[1], b[1], c[1], i)]; | ||
} | ||
return entries; | ||
return zip; | ||
} | ||
@@ -44,11 +44,11 @@ function quazipper(ea, eb, ec, ed) { | ||
} = this; | ||
value = value || key, lo = lo || 0, hi = hi || (ea === null || ea === void 0 ? void 0 : ea.length); | ||
const entries = Array(hi); | ||
value = value ?? key, hi = hi ?? (ea == null ? void 0 : ea.length); | ||
const zip = Array(hi); | ||
for (let i = --hi, a, b, c, d; i >= lo; i--) { | ||
for (let i = lo ?? 0, a, b, c, d; i < hi; i++) { | ||
a = ea[i], b = eb[i], c = ec[i], d = ed[i]; | ||
entries[i] = [key(a[0], b[0], c[0], d[0], i), value(a[1], b[1], c[1], d[1], i)]; | ||
zip[i] = [key(a[0], b[0], c[0], d[0], i), value(a[1], b[1], c[1], d[1], i)]; | ||
} | ||
return entries; | ||
return zip; | ||
} | ||
@@ -112,33 +112,56 @@ /** | ||
* | ||
* @param {[*,*][]} ea | ||
* @param {[*,*][]} eb | ||
* @param {[*,*][]} entA | ||
* @param {[*,*][]} entB | ||
* @param {function} keyMap | ||
* @param {function} [valMap] | ||
* @param {number} [l] | ||
* @param {number} [hi] | ||
* @returns {[*,*][]} | ||
*/ | ||
const zipper = (ea, eb, keyMap, valMap, l) => duozipper.call({ | ||
const zipper = (entA, entB, keyMap, valMap, hi) => duozipper.call({ | ||
key: keyMap, | ||
value: valMap, | ||
hi: l | ||
}, ea, eb); | ||
hi | ||
}, entA, entB); | ||
/** | ||
* | ||
* @param {[*,*][]} ea | ||
* @param {[*,*][]} eb | ||
* @param {[*,*][]} entA | ||
* @param {[*,*][]} entB | ||
* @param {function} keyMap | ||
* @param {function} [valMap] | ||
* @param {number} [l] | ||
* @param {number} [hi] | ||
* @returns {[*,*][]} | ||
*/ | ||
const mutazip = (ea, eb, keyMap, valMap, l) => { | ||
l = l || (ea === null || ea === void 0 ? void 0 : ea.length), valMap = valMap || keyMap; | ||
const mutazip = (entA, entB, keyMap, valMap, hi) => { | ||
hi = hi ?? (entA == null ? void 0 : entA.length), valMap = valMap ?? keyMap; | ||
for (let a, b, i = 0; i < l && (a = ea[i]) && (b = eb[i]); i++) a[0] = keyMap(a[0], b[0], i), a[1] = valMap(a[1], b[1], i); | ||
for (let i = 0, a, b; i < hi && (a = entA[i]) && (b = entB[i]); i++) { | ||
a[0] = keyMap(a[0], b[0], i); | ||
a[1] = valMap(a[1], b[1], i); | ||
} | ||
return ea; | ||
return entA; | ||
}; | ||
export { Duozipper, Quazipper, Trizipper, mutazip, zipper }; | ||
/** | ||
* | ||
* @param {[*,*][]} entA | ||
* @param {[*,*][]} entB | ||
* @param {function} keyAction | ||
* @param {function} [valueAction] | ||
* @param {number} [hi] | ||
* @returns {[*,*][]} | ||
*/ | ||
const iterzip = (entA, entB, keyAction, valueAction, hi) => { | ||
hi = hi ?? (entA == null ? void 0 : entA.length), valueAction = valueAction ?? keyAction; | ||
for (let i = 0, a, b; i < hi && (a = entA[i]) && (b = entB[i]); i++) { | ||
keyAction(a[0], b[0], i); | ||
valueAction(a[1], b[1], i); | ||
} | ||
return void 0; | ||
}; | ||
export { Duozipper, Quazipper, Trizipper, duozipper, iterzip, mutazip, quazipper, trizipper, zipper }; |
{ | ||
"name": "@vect/entries-zipper", | ||
"version": "0.3.10", | ||
"version": "0.4.0", | ||
"description": "Zip function", | ||
@@ -33,3 +33,3 @@ "main": "dist/index.cjs.js", | ||
"homepage": "https://github.com/hoyeungw/vect#readme", | ||
"gitHead": "cf716b1eeb2ed3e653a75f1924c318c5f80bd23a" | ||
"gitHead": "0df009c248625ffea1915bdf71435257046927a5" | ||
} |
10367
300