0.1.3 • Published 5 months ago
@fightingdreamer/iter-flatten v0.1.3
iter-flatten
Description
Missing flatten over Iterable
, similar to Array.flat
but operates on fixed deepness of 1.
Install
bun add @fightingdreamer/iter-flatten
Usage
import {flatten} from '@fightingdreamer/iter-flatten'
const vector = [
['a','b','c'][Symbol.iterator](),
['d','e','f'][Symbol.iterator](),
][Symbol.iterator]()
const result = Array.from(flatten(vector))
const expect = ['a','b','c','d','e','f']
for (const [index, value] of expect.entries()) {
console.assert(result.at(index) == value)
}
Usage (node / commonjs)
const {flatten} = require('@fightingdreamer/iter-flatten')
const vector = [
['a','b','c'][Symbol.iterator](),
['d','e','f'][Symbol.iterator](),
][Symbol.iterator]()
const result = Array.from(flatten(vector))
const expect = ['a','b','c','d','e','f']
for (const [index, value] of expect.entries()) {
assert(result.at(index) == value)
}
Functions
function* flatten<T>(iterator: Iterable<Iterable<T>>): Generator<T>
Will chain inner iterables into one long iterable.