ixfx
    Preparing search index...

    Interface IMapOfMutableExtended<V, M>

    Like a Map but multiple values can be stored for each key. Duplicate values can be added to the same or even a several keys.

    Three pre-defined MapOf's are available:

    Adding

    // Add one or more values using the predefined key function to generate a key
    map.addValue(value1, value2, ...);
    // Add one or more values under a specified key
    map.addKeyedValues(key, value1, value2, ...);

    Finding/accessing

    // Returns all values stored under key
    map.get(key);
    // Returns the first key where value is found, or _undefined_ if not found
    map.findKeyForValue(value);
    // Returns _true_ if value is stored under key
    map.hasKeyValue(key, value);
    // Returns _true_ if map contains key
    map.has(key);

    Removing

    // Removes everything
    map.clear();
    // Delete values under key. Returns _true_ if key was found.
    map.delete(key);
    // Deletes specified value under key. Returns _true_ if found.
    map.deleteKeyValue(key, value);

    Metadata about the map:

    map.isEmpty;         // True/false
    map.lengthMax; // Largest count of items under any key
    map.count(key); // Count of items stored under key, or 0 if key is not present.
    map.keys(); // Returns a string array of keys
    map.keysAndCounts(); // Returns an array of [string,number] for all keys and number of values for each key
    map.debugString(); // Returns a human-readable string dump of the contents

    Events can be listened to via addEventListener

    • addedKey, addedValue - when a new key is added, or when a new value is added
    • clear - when contents are cleared
    • deleteKey - when a key is deleted
    map.addEventLister(`addedKey`, ev => {
    // New key evt.key seen.
    });
    interface IMapOfMutableExtended<V, M> {
        get isDisposed(): boolean;
        get isEmpty(): boolean;
        get lengthKeys(): number;
        get typeName(): string;
        addEventListener<K extends keyof MapArrayEvents<V>>(
            name: K,
            listener: (
                event: MapArrayEvents<V>[K],
                sender: SimpleEventEmitter<MapArrayEvents<V>>,
            ) => void,
        ): void;
        addKeyedValues(key: string, ...values: readonly V[]): void;
        addValue(...values: readonly V[]): void;
        clear(): void;
        count(key: string): number;
        debugString(): string;
        delete(key: string): boolean;
        deleteByValue(value: V): boolean;
        deleteKeyValue(key: string, value: V): boolean;
        dispose(): void;
        entries(): IterableIterator<[key: string, value: V[]]>;
        entriesFlat(): IterableIterator<readonly [string, V]>;
        fireEvent<K extends keyof MapArrayEvents<V>>(
            type: K,
            args: MapArrayEvents<V>[K],
        ): void;
        firstKeyByValue(value: V, eq?: IsEqual<V>): undefined | string;
        get(key: string): IterableIterator<V>;
        has(key: string): boolean;
        hasKeyValue(key: string, value: V, eq?: IsEqual<V>): boolean;
        keys(): IterableIterator<string>;
        keysAndCounts(): IterableIterator<readonly [string, number]>;
        removeEventListener<K extends keyof MapArrayEvents<V>>(
            type: K,
            listener: (
                event: MapArrayEvents<V>[K],
                sender: SimpleEventEmitter<MapArrayEvents<V>>,
            ) => void,
        ): void;
        valuesFlat(): IterableIterator<V>;
    }

    Type Parameters

    • V

      Values stored under keys

    • M

      Type of data structure managing values

    Hierarchy (View Summary)

    Accessors

    • get isDisposed(): boolean

      Returns boolean

    • get isEmpty(): boolean

      Returns true if the map is empty

      Returns boolean

    • get lengthKeys(): number

      Returns the number of keys

      Returns number

    • get typeName(): string

      Returns the type name. For in-built implementations, it will be one of: array, set or circular

      Returns string

    Methods

    • Adds several values under the same key. Duplicate values are permitted, depending on implementation.

      Parameters

      • key: string
      • ...values: readonly V[]

      Returns void

    • Adds a value, automatically extracting a key via the groupBy function assigned in the constructor options.

      Parameters

      • ...values: readonly V[]

        Adds several values

      Returns void

    • Returns the number of values stored under key, or 0 if key is not present.

      Parameters

      • key: string

        Key

      Returns number

    • Returns a human-readable rendering of contents

      Returns string

    • Deletes all values stored under key. Returns true if key was found

      Parameters

      • key: string

      Returns boolean

    • Delete all occurrences of value, regardless of key it is stored under. Returns true if something was deleted.

      Parameters

      • value: V

      Returns boolean

    • Deletes all values under key that match value.

      Parameters

      • key: string

        Key

      • value: V

        Value

      Returns boolean

    • Returns IterableIterator<[key: string, value: V[]]>

    • Iterates over key-value pairs. Unlike a normal map, the same key may appear several times.

      Returns IterableIterator<readonly [string, V]>

    • Finds the first key where value is stored. Note: value could be stored in multiple keys

      Parameters

      Returns undefined | string

      Key, or undefined if value not found

    • Iterates over all values stored under key

      Parameters

      • key: string

      Returns IterableIterator<V>

    • Returns true if key has any values

      Parameters

      • key: string

      Returns boolean

    • Returns true if value is stored under key.

      Parameters

      • key: string

        Key

      • value: V

        Value

      • Optionaleq: IsEqual<V>

      Returns boolean

    • Iterates over all keys

      Returns IterableIterator<string>

    • Iteates over all keys and the count of values therein

      Returns IterableIterator<readonly [string, number]>

    • Iterates over all values, regardless of key. Same value may re-appear if it's stored under different keys.

      Returns IterableIterator<V>