Missing flatten over Iterable
, similar to Array.flat
but operates on fixed deepness of 1.
bun add @fightingdreamer/iter-flatten
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)
}
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)
}
function* flatten<T>(iterator: Iterable<Iterable<T>>): Generator<T>
Will chain inner iterables into one long iterable.