darky / mapn

Like JavaScript Array.map, but with multiple returns

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

mapn

Like JavaScript Array.map, but with multiple returns. Or n-dimension Array.map version. TypeScript supports too.

Examples

Basic

import assert from 'node:assert';
import { mapn } from 'mapn';

const [numbers, strings] = mapn([1, 2, 3], n => [n * 2, `${n}`]);
assert.deepStrictEqual(numbers, [2, 4, 6]);
assert.deepStrictEqual(strings, ['1', '2', '3']);

Skip

import assert from 'node:assert';
import { mapn, mapnSkip } from 'mapn';

const [numbers, strings] = mapn([1, 2, 3], n => [n === 2 ? mapnSkip : n * 2, `${n}`]);
assert.deepStrictEqual(numbers, [2, 6]);
assert.deepStrictEqual(strings, ['1', '2', '3']);

Caveat

Please avoid return undefined in result array. If you need return "empty" value, need return null instead. Or better use mapnSkip

import { mapn } from 'mapn';

mapn([1, 2, 3], n => [n, n === 2 ? undefined : n * 2]);

import { mapn } from 'mapn';

mapn([1, 2, 3], n => [n, n === 2 ? null : n * 2]);

✅✅

import { mapn, mapnSkip } from 'mapn';

mapn([1, 2, 3], n => [n, n === 2 ? mapnSkip : n * 2]);

About

Like JavaScript Array.map, but with multiple returns


Languages

Language:TypeScript 100.0%