Skip to content

Instantly share code, notes, and snippets.

@bsidhom
Created September 30, 2021 01:02
Show Gist options
  • Save bsidhom/bac0aa47e93ef8b0d850c4849adba458 to your computer and use it in GitHub Desktop.
Save bsidhom/bac0aa47e93ef8b0d850c4849adba458 to your computer and use it in GitHub Desktop.
Generate a range or interpolated section with generators
let range = (start, end, step) => {
return {
*[Symbol.iterator]() {
for (let n = start; n < end; n += step) {
yield n;
}
},
};
};
let interpolate = (start, end, segmentCount) => {
let span = end - start;
let stepSize = span / segmentCount;
return {
*[Symbol.iterator]() {
yield start;
for (let n = 1; n < segmentCount; n++) {
yield start + stepSize * n;
}
yield end;
},
};
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment