trancio
v1.0.0
Published
Create an array of elements split into chunks
Downloads
1
Maintainers
Readme
🍕 trancio
Trancio lazily splits an array into chunks, providing both a functional and an iterable interface
Install
$ npm install trancio
Or if you prefer using Yarn:
$ yarn add trancio
Usage
import { 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.
API
trancio(input, size)
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.
input
Type: unknown[]
size
Type: number
The length of each chunk.
More Examples
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]
}
FAQ
What does trancio mean?
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.