@arecalde/nnmap

Array mapping ignoring null values

Usage no npm install needed!

<script type="module">
  import arecaldeNnmap from 'https://cdn.skypack.dev/@arecalde/nnmap';
</script>

README

nnmap (No nulls map)

A function for selectively mapping through arrays

  • Just return null to exclude values from map
  • Quit from map at any time

No dependencies

Usage:

function returnIfEven(n: any): any | null {
  return (n % 2 === 0) ? n : null;
}

function quitIfThree(n: any): boolean {
  if (n === 3) return true;
  return false;
}

function quitOnThirdItem(n: any, index: number): boolean {
  if (index >= 3) return true;
  return false;
}

// skip nulls
const evenValues = nnmap([1, 2, 3, 4, 5, 6], returnIfEven); // [2, 4, 6]

// quit when value is 3
const quitWhenThree = nnmap([1, 2, 3, 4, 5]), (n) => n, quitIfThree); // [1, 2]

// map until the third index (maps indexes 0, 1, 2)
const firstThreeMappedItems = nnmap([1, 2, 3, 4, 5]), (n) => n, quitOnThirdItem); // [1, 2, 3]

API

  • nnmap

Parameters | Name | type | Description | | ------------- |:-----------------:| ----------- | | arr | any[] | The array to be mapped | | cb | Callback | The mapping callback function | | qcb? | QuitCallback | If this callback returns true, nnmap quits immediately |

// example
const mappedArray = nnmap([]), (n) => n, (n, i) => null); 

cb: Callback

Whatever this callback returns is inserted in the resulting array

Parameters

Name type Description
currentItem any The current array item to map to a new value
(item) => item.foo

qcb?: QuitCallback

When this callback returns true, nnmap quits immediately and returns an array with the values mapped up to this point

Name type Description
currentItem any[] The current array item to map to a new value
currentIndex number The current index being mapped
// quit based on the current value
(item) => item.quit === true;

// quit based on the current index
(item, index) => index > 10;