1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- (function (global, factory) {
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
- typeof define === 'function' && define.amd ? define(['exports'], factory) :
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.setArray = {}));
- })(this, (function (exports) { 'use strict';
-
- class SetArray {
- constructor() {
- this._indexes = { __proto__: null };
- this.array = [];
- }
- }
-
- function cast(set) {
- return set;
- }
-
- function get(setarr, key) {
- return cast(setarr)._indexes[key];
- }
-
- function put(setarr, key) {
-
- const index = get(setarr, key);
- if (index !== undefined)
- return index;
- const { array, _indexes: indexes } = cast(setarr);
- const length = array.push(key);
- return (indexes[key] = length - 1);
- }
-
- function pop(setarr) {
- const { array, _indexes: indexes } = cast(setarr);
- if (array.length === 0)
- return;
- const last = array.pop();
- indexes[last] = undefined;
- }
-
- function remove(setarr, key) {
- const index = get(setarr, key);
- if (index === undefined)
- return;
- const { array, _indexes: indexes } = cast(setarr);
- for (let i = index + 1; i < array.length; i++) {
- const k = array[i];
- array[i - 1] = k;
- indexes[k]--;
- }
- indexes[key] = undefined;
- array.pop();
- }
- exports.SetArray = SetArray;
- exports.get = get;
- exports.pop = pop;
- exports.put = put;
- exports.remove = remove;
- Object.defineProperty(exports, '__esModule', { value: true });
- }));
|