fightingdreamer / npm-iter-flatten

Missing flatten operation over iterable.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About

Missing flatten operation over iterable.


Languages

Language:TypeScript 66.7%Language:JavaScript 33.3%