Skip to content

Latest commit

 

History

History
110 lines (68 loc) · 2.62 KB

readme.md

File metadata and controls

110 lines (68 loc) · 2.62 KB

🍕 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.