1 array
ztimson edited this page 2024-09-22 03:11:09 -04:00

@ztimson/utils / array

array

Functions

addUnique()

addUnique<T>(array, el): T[]

Only add element to array if it isn't already included

Type Parameters

T

Parameters

array: T[]

Target array element will be added to

el: T

Unique element to add

Returns

T[]

Array with element if it was unique

Example

const arr = addUnique([1, 2, 3], 3);
console.log(arr); // Output: [1, 2, 3]

Deprecated

Use ASet to create unique arrays

Defined in

src/array.ts:17


arrayDiff()

arrayDiff(a, b): any[]

Find all unique elements in arrays

Parameters

a: any[]

First array to compare

b: any[]

Second array to compare

Returns

any[]

Unique elements

Deprecated

Use ASet to perform Set operations on arrays

Defined in

src/array.ts:30


caseInsensitiveSort()

caseInsensitiveSort(prop): (a, b) => number

Provides a shorthand for sorting arrays of complex objects by a string property

Parameters

prop: string

Name of property to use, supports dot notation

Returns

Function

  • Function to handle sort (Meant to be passed to Array.prototype.sort or used in sortFn)
Parameters

a: any

b: any

Returns

number

Example

let arr = [{a: 'Apple', b: 123}, {a: 'Carrot', b: 789}, {a: 'banana', b: 456}];
arr.sort(caseInsensitiveSort('a'));

Defined in

src/array.ts:49


findByProp()

findByProp(prop, value): (v) => boolean

Shorthand to find objects with a property value

Parameters

prop: string

Property to compare (Dot nation supported)

value: any

Value property must have

Returns

Function

Function used by filter or find

Parameters

v: any

Returns

boolean

Example

const found = [
  {name: 'Batman'},
  {name: 'Superman'},
].filter(findByProp('name', 'Batman'));

Defined in

src/array.ts:73


flattenArr()

flattenArr(arr, result): any[]

Recursively flatten nested arrays

Parameters

arr: any[]

n-dimensional array

result: any[] = []

Internal use only -- Keeps track of recursion

Returns

any[]

  • Flattened array

Example

const arr = [
    {label: null, url: '/'},
    {label: 'Model Admin', url: '/model-admin'},
    [
      {label: 'Elements', url: '/model-admin/elements'},
      {label: 'Example', url: null}
    ]
];

console.log(flattenArr(arr));
// Output:
[
    {label: null, url: '/'},
    {label: 'Model Admin', url: '/model-admin'},
    {label: 'Elements', url: '/model-admin/elements'},
    {label: 'Example', url: null}
]

Defined in

src/array.ts:105


makeArray()

makeArray<T>(value): T[]

Make sure value is an array, if it isn't wrap it in one

Type Parameters

T

Parameters

value: T | T[]

Value that should be an array

Returns

T[]

Value in an array

Defined in

src/array.ts:155


makeUnique()

makeUnique(arr): any[]

Make sure every element in array is unique

Parameters

arr: any[]

Array that will be filtered in place

Returns

any[]

Original array

Deprecated

Please use ASet to create a guaranteed unique array

Defined in

src/array.ts:142


sortByProp()

sortByProp(prop, reverse): (a, b) => number

Provides a shorthand for sorting arrays of complex objects

Parameters

prop: string

Name of property to use, supports dot notation

reverse: boolean = false

Reverse the order of the sort

Returns

Function

  • Function to handle sort (Meant to be passed to Array.prototype.sort)
Parameters

a: any

b: any

Returns

number

Example

let arr = [{a: {b: 2}}, {a: {b: 3}}, {a: {b: 1}}];
arr.sort(sortByProp('a.b'));

Defined in

src/array.ts:123