π trancio Release Version
Trancio lazily splits an array into chunks, providing both a functional and an iterable interface
$ npm install trancioOr if you prefer using Yarn:
$ yarn add trancioimport { trancio } from "trancio" const array = [1, 2, 3, 4, 5, 6, 7, 8] const tranci = [...trancio(array, 3)] // => Array [[1, 2, 3], [4, 5, 6], [7, 8]] const trancia = trancio(array, 3) trancia() // => [1, 2, 3] trancia() // => [4, 5, 6] trancia() // => [7, 8]
If you're using TypeScript, you can also directly import the .ts file, just like this:
import { trancio } from "trancio/ts"
By doing that your bundler should, hopefully, be able to compile it by following your project's tsconfig.json file.
Create a slicer that also implements the IterableIterator interface, that way you can use the spread operator, the for...of statement, and call next() over it.
Calling the slicer will return a chunk of the array with size elements. If input can't be split evenly, the final chunk will contain the remaining elements.
Type: unknown[]
Type: number
The length of each chunk.
Using next():
import { trancio } from "trancio" const array = [1, 2, 3, 4, 5, 6, 7, 8] const trancia = trancio(array, 3) const fetta = trancia.next() // fetta => { value: [1, 2, 3], done: false } trancia.next() // fetta => { value: [4, 5, 6], done: false } trancia.next() // fetta => { value: [7, 8], done: false } trancia.next() // fetta => { value: undefined, done: true }
Using for...of:
import { trancio } from "trancio" const array = [1, 2, 3, 4, 5, 6, 7, 8] for (const fetta of trancio(array, 3)) { console.log(fetta) // 1st time => [1, 2, 3] // 2nd time => [4, 5, 6] // 3rd time => [7, 8] }
Pronounced /ΛtrantΚo/, trancio is an Italian word that means "slice" or "piece". Usually, the term is used for food, e.g. "un trancio di pizza", which means "a slice of pizza", hence the pizza emoji at the top.