data-forge
Version:
JavaScript data transformation and analysis toolkit inspired by Pandas and LINQ.
52 lines • 2.06 kB
JavaScript
;
var __values = (this && this.__values) || function (o) {
var m = typeof Symbol === "function" && o[Symbol.iterator], i = 0;
if (m) return m.call(o);
return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
};
Object.defineProperty(exports, "__esModule", { value: true });
//
// An iterator that zips together each set of elements in child iterables.
//
var series_1 = require("../series");
var ZipIterator = /** @class */ (function () {
function ZipIterator(iterables, zipper) {
this.iterators = iterables.map(function (iterable) { return iterable[Symbol.iterator](); });
this.zipper = zipper;
}
ZipIterator.prototype.next = function () {
var results = this.iterators.map(function (iterator) { return iterator.next(); });
try {
for (var results_1 = __values(results), results_1_1 = results_1.next(); !results_1_1.done; results_1_1 = results_1.next()) {
var result = results_1_1.value;
if (result.done) {
// If any are done we are all done.
// https://github.com/Microsoft/TypeScript/issues/8938
return { done: true }; // <= explicit cast here!;
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (results_1_1 && !results_1_1.done && (_a = results_1.return)) _a.call(results_1);
}
finally { if (e_1) throw e_1.error; }
}
var zippedValues = results.map(function (result) { return result.value; });
var zipperInput = new series_1.Series(zippedValues);
return {
done: false,
value: this.zipper(zipperInput)
};
var e_1, _a;
};
return ZipIterator;
}());
exports.ZipIterator = ZipIterator;
//# sourceMappingURL=zip-iterator.js.map