@wojtekmaj/async-array-utils
v1.8.1
Published
A collection of array-related async utilities.
Downloads
3,316
Readme
Async-Array-Utils
A collection of array-related async utilities.
tl;dr
- Install by executing
npm install @wojtekmaj/async-array-utils
oryarn add @wojtekmaj/async-array-utils
. - Import by adding
import * as asyncArrayUtils from '@wojtekmaj/async-array-utils'
. - Do stuff with it!
const asyncMappedArr = await asyncMap([1, 2, 3], async (x) => x * 2);
User guide
Table of contents
asyncEvery()
asyncEveryStrict()
asyncFilter()
asyncFilterStrict()
asyncFind()
asyncFindIndex()
asyncForEach()
asyncForEachStrict()
asyncMap()
asyncMapStrict()
asyncReduce()
asyncSome()
asyncSomeStrict()
asyncEvery()
Tests whether all elements in the array pass the test implemented by the provided asynchronous function. It returns a Boolean value.
Note: For optimization purposes, all iterations are ran concurrently. If you rely on any side effects, consider asyncEveryStrict()
instead.
Sample usage
import { asyncEvery } from '@wojtekmaj/async-array-utils';
const largerThanZero = await asyncEvery([1, 2, 3], async (el) => el > 0); // true
asyncEveryStrict()
Like asyncEvery()
, but runs iterations non-concurrently.
Sample usage
import { asyncEveryStrict } from '@wojtekmaj/async-array-utils';
const indexes = [];
const largerThanZero = await asyncEveryStrict([1, 2, 3], async (el, index) => {
indexes.push(index);
return el > 0;
}); // true
console.log(indexes); // [0, 1, 2]
asyncFilter()
Creates a new array with all elements that pass the test implemented by the provided asynchronous function.
Note: For optimization purposes, all iterations are ran concurrently. If you rely on any side effects, consider asyncFilterStrict()
instead.
Sample usage
import { asyncFilter } from '@wojtekmaj/async-array-utils';
const asyncFilteredArr = await asyncFilter([1, 2, 3], async (el) => el > 1); // [2, 3]
asyncFilterStrict()
Like asyncFilter()
, but runs iterations non-concurrently.
Sample usage
import { asyncFilterStrict } from '@wojtekmaj/async-array-utils';
const indexes = [];
const asyncFilteredArr = await asyncFilterStrict([1, 2, 3], async (el, index) => {
indexes.push(index);
return el > 1;
}); // [2, 3]
console.log(indexes); // [0, 1, 2]
asyncFind()
Returns the first element in the provided array that satisfies the provided testing function. If no values satisfy the testing function, undefined
is returned.
Sample usage
import { asyncFind } from '@wojtekmaj/async-array-utils';
const asyncFoundEl = await asyncFind([1, 2, 3], async (el) => el > 1); // 2
asyncFindIndex()
Returns the index of the first element in an array that satisfies the provided testing function. If no elements satisfy the testing function, -1
is returned.
Sample usage
import { asyncFindIndex } from '@wojtekmaj/async-array-utils';
const asyncFoundIndex = await asyncFindIndex([1, 2, 3], async (el) => el > 1); // 1
asyncForEach()
Executes a provided asynchronous function once for each array element.
Note: For optimization purposes, all iterations are ran concurrently. If you rely on any side effects, consider asyncForEachStrict()
instead.
Sample usage
import { asyncForEach } from '@wojtekmaj/async-array-utils';
await asyncForEach([1, 2, 3], async (el) => {
console.log(el * 2);
}); // undefined; 3 console.logs
asyncForEachStrict()
Like asyncForEach()
, but runs iterations non-concurrently.
Sample usage
import { asyncForEachStrict } from '@wojtekmaj/async-array-utils';
const indexes = [];
await asyncForEachStrict([1, 2, 3], async (el, index) => {
indexes.push(index);
console.log(el * 2);
}); // undefined; 3 console.logs
console.log(indexes); // [0, 1, 2]
asyncMap()
Creates a new array populated with the results of calling a provided asynchronous function on every element in the calling array.
Note: For optimization purposes, all iterations are ran concurrently. If you rely on any side effects, consider asyncMapStrict()
instead.
Sample usage
import { asyncMap } from '@wojtekmaj/async-array-utils';
const asyncMappedArr = await asyncMap([1, 2, 3], async (el) => el * 2); // [2, 4, 6]
asyncMapStrict()
Like asyncMap()
, but runs iterations non-concurrently.
Sample usage
import { asyncMapStrict } from '@wojtekmaj/async-array-utils';
const indexes = [];
const asyncMappedArr = await asyncMapStrict([1, 2, 3], async (el, index) => {
indexes.push(index);
return el * 2;
}); // [2, 4, 6]
console.log(indexes); // [0, 1, 2]
asyncReduce()
Executes a reducer asynchronous function (that you provide) on each element of the array, resulting in a single output value.
Sample usage
import { asyncReduce } from '@wojtekmaj/async-array-utils';
const result = await asyncReduce(
[1, 2, 3],
async (tmp, cur, idx) => {
return tmp + cur;
},
0,
); // 6
asyncSome()
Tests whether at least one element in the array pass the test implemented by the provided asynchronous function. It returns a Boolean value.
Note: For optimization purposes, all iterations are ran concurrently. If you rely on any side effects or execution order, consider asyncMapStrict()
instead.
Sample usage
import { asyncSome } from '@wojtekmaj/async-array-utils';
const largerThanZero = await asyncSome([1, 2, 3], async (el) => el > 0); // true
asyncSomeStrict()
Like asyncSome()
, but runs iterations non-concurrently.
Sample usage
import { asyncSomeStrict } from '@wojtekmaj/async-array-utils';
const indexes = [];
const largerThanZero = await asyncSomeStrict([1, 2, 3], async (el, index) => {
indexes.push(index);
return el > 0;
}); // true
console.log(indexes); // [0]
License
The MIT License.