Skip to content

Lazily split an array into chunks, just like slices of pizza ๐Ÿ•

License

Notifications You must be signed in to change notification settings

macarie/trancio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

33 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ• trancio Release Version

Trancio lazily splits an array into chunks, providing both a functional and an iterable interface

Build Coverage Status License

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.