data-forge
Version:
JavaScript data transformation and analysis toolkit inspired by Pandas and LINQ.
42 lines • 1.45 kB
JavaScript
;
//
// Iterates an underlying iterable in the 'windows'.
//
Object.defineProperty(exports, "__esModule", { value: true });
var dataframe_1 = require("../dataframe");
var DataFrameWindowIterator = /** @class */ (function () {
function DataFrameWindowIterator(columnNames, iterable, period) {
this.columnNames = columnNames;
this.iterable = iterable;
this.period = period;
}
DataFrameWindowIterator.prototype.next = function () {
if (!this.iterator) {
this.iterator = this.iterable[Symbol.iterator]();
}
var curWindow = [];
for (var i = 0; i < this.period; ++i) {
var curPos = this.iterator.next();
if (curPos.done) {
// Underlying iterator is finished.
break;
}
curWindow.push(curPos.value);
}
if (curWindow.length === 0) {
// Underlying iterator doesn't have required number of elements.
return { done: true };
}
var window = new dataframe_1.DataFrame({
columnNames: this.columnNames,
pairs: curWindow
});
return {
value: window,
done: false,
};
};
return DataFrameWindowIterator;
}());
exports.DataFrameWindowIterator = DataFrameWindowIterator;
//# sourceMappingURL=dataframe-window-iterator.js.map