Katxupa
  • 👋Welcome to Katxupa Extension Library
  • Why Katxupa?
    • 🍻What makes Katxupa special?
    • ✨Key Features
  • Get a taste of Katxupa
    • 🍲Installation
    • 🍜Usage
      • 🍻Scope Functions
        • Function Selection
        • Distinctions
        • Functions
          • letIt
          • withIt
          • runIt
          • applyIt
          • alsoIt
          • takeIf and takeUnless
      • 😎Null Safety
        • TypeScript Null-Safety
        • Optional Chaining for JavaScript
      • ⏰Duration
      • ➖Reducer
      • 📏Range
      • 🏃‍♂️Result
      • 🤼Either
      • 🟰Compare
      • ⚔️Global Utility Functions
    • 🤌Dip Dive
      • Optional
      • Range
      • Duration
      • Reducer
      • Collections
        • Array
        • Set
  • 🙏Support
    • Source Code
    • ESLint Config
    • TypeScript Docs
    • Manuel Santos Linkedin
Powered by GitBook
On this page
  • Global Functions
  • listOf
  • mutableListOf
  • emptyList
  • Class Functions
  • getOrElse
  • getOrEmpty
  • associateWith
  • sortBy
  • plus
  • minus
  • minusAssign
  • plusAssign
  • count
  • removeAll
  • retainAll
  • first
  • last
  • shuffle
  1. Get a taste of Katxupa
  2. Dip Dive
  3. Collections

Array

PreviousCollectionsNextSet

Last updated 1 year ago

The Array object, as with arrays in other programming languages, enables , and has members for .

Katxupa is here just to extend the standard library by adding more utility functions to the Array type. Besides , the library provides the following functions:

Global Functions

listOf

Creates an immutable list from the provided elements.

const immutableList = listOf(1, 2, 3);
// immutableList is [1, 2, 3]

mutableListOf

Creates a mutable list from the provided elements.

const mutableList = mutableListOf(1, 2, 3);
// mutableList is [1, 2, 3]

emptyList

Creates an empty list. It returns an empty array, which represents the list.

const emptyArray = emptyList();
console.log(emptyArray); // []

Class Functions

getOrElse

Gets the element at the specified index or provides a default value if the index is out of bounds.

const collection = mutableListOf(1, 2, 3, 4, 5);
const element = collection.getOrElse(2, () => 10);
// element is 3

getOrEmpty

Gets an optional containing the element at the specified index.

const collection = mutableListOf(1, 2, 3, 4, 5);
const optionalElement = collection.getOrEmpty(2);
// optionalElement contains the value Optional.of(3)

associateWith

Associates each element with a key-value pair based on the provided selectors.

const elements = [{ id: 1, value: 'a' }, { id: 2, value: 'b' }];
const keyValuePairs = elements.associateWith(
  (element) => element.id,
  (element) => element.value
);

sortBy

Sorts the array using the provided comparator function.

const users = [
  { name: 'John', age: 30 },
  { name: 'Alice', age: 25 },
  { name: 'Bob', age: 35 },
];
collection.sortBy((a, b) => a.age - b.age);
// users is now sorted by age: 
// [{ name: 'Alice', age: 25 }, { name: 'John', age: 30 }, { name: 'Bob', age: 35 }]

plus

Concatenates the array with another array.

const collection = mutableListOf(1, 2, 3);
const otherArray = [4, 5, 6];
const result = collection.plus(otherArray);
// result is [1, 2, 3, 4, 5, 6]

minus

Removes elements from the collection that are present in another array.

const collection = mutableListOf(1, 2, 3, 4, 5);
const elementsToRemove = [3, 5];
const result = collection.minus(elementsToRemove);
// result is [1, 2, 4]

minusAssign

Appends elements from another array to the collection (mutates the collection).

const collection = mutableListOf(1, 2, 3, 4, 5);
const elementsToRemove = [3, 5];
collection.minusAssign(elementsToRemove);
// collection is now [1, 2, 4]

plusAssign

Appends elements from another array to the collection (mutates the collection).

const collection = mutableListOf(1, 2, 3);
const additionalElements = [4, 5, 6];
collection.plusAssign(additionalElements);
// collection is now [1, 2, 3, 4, 5, 6]

count

Returns the number of elements in the collection.

const count = mutableListOf(1, 2, 3, 4, 5).count();
// count is 5

removeAll

Removes elements from the collection based on a predicate or a collection of elements.

const collection = mutableListOf(1, 2, 3, 4, 5);
const elementsToRemove = [3, 5];
const result = collection.removeAll(elementsToRemove);
// result is [1, 2, 4]

retainAll

Retains only the elements in the collection that are present in another array.

const collection = mutableListOf(1, 2, 3, 4, 5);
const elementsToRetain = [3, 5];
const result = collection.retainAll(elementsToRetain);
// result is [3, 5]

first

Returns the first element in the collection.

const collection = mutableListOf(1, 2, 3);
const firstElement = collection.first();
// firstElement is 1

last

Returns the last element in the array.

const collection = mutableListOf(1, 2, 3);
const lastElement = collection.last();
// lastElement is 3

shuffle

Shuffles the elements in the array randomly.

const collection = mutableListOf(1, 2, 3, 4, 5);
collection.shuffle();
// collection is now shuffled randomly, e.g., [3, 1, 5, 2, 4]
🤌
storing a collection of multiple items under a single variable name
performing common array operations
Array standard functions