UNPKG

gamelet-cli

Version:

Download project from code.gamelet.com, edit/test in vscode and sync back to server.

126 lines 8.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ArrayUtil = void 0; class ArrayUtil { /** * Swaps the position of the elements. * @param {Array<any>} array the array to swap the position of the elements. * @param {number} index1 the first element. * @param {number} index2 the second element. */ static swapElements(array, element1, element2) { ArrayUtil.swapElementsAt(array, array.indexOf(element1), array.indexOf(element2)); } /** * Swaps the position of the elements in the specified indexes. * @param {Array[]} array the array to swap the position of the elements. * @param {number} index1 the index of the first element. * @param {number} index2 the index of the second element. */ static swapElementsAt(array, index1, index2) { var el = array[index1]; array[index1] = array[index2]; array[index2] = el; } /** * Remove an element from the array * @param {Array<any>} array * @param {any} element */ static removeElement(array, element) { var index = array.indexOf(element); if (index == -1) return false; array.splice(index, 1); return true; } /** * Add an element to an array if the specified element is not in the array. * @param {Array<any>} array * @param {any} element */ static addUniqueElement(array, element) { if (array.indexOf(element) != -1) return false; array.push(element); return true; } /** * Sort an array of number objects * @param {Array<any>} array * @param {boolean} ascending */ static sortNumeric(array, ascending) { if (ascending) { array.sort((a, b) => a - b); } else { array.sort((a, b) => b - a); } return array; } /** * Sort an array of objects by a field of the objects. * @param {Array<any>} array * @param {string} key the property key used to sort * @param {boolean} ascending */ static sortNumericOn(arr, key, ascending) { if (ascending) { arr.sort((a, b) => a[key] - b[key]); } else { arr.sort((a, b) => b[key] - a[key]); } return arr; } /** * Sort an array of objects by a field of the objects. * @param {Array<any>} array * @param {string} key the property key used to sort * @param {boolean} ascending */ static sortOn(arr, key, ascending) { if (ascending) { arr.sort((a, b) => a[key] == b[key] ? 0 : (a[key] > b[key] ? 1 : -1)); } else { arr.sort((a, b) => a[key] == b[key] ? 0 : (a[key] < b[key] ? 1 : -1)); } return arr; } /** * Set an element in an array to a specified index. * @param {Array<any>} array * @param {any} element * @param {number} index * @return {number} returns the index number of the element */ static setElementIndex(array, element, index) { var order = array.indexOf(element); if (order == -1) return -1; index = Math.max(0, Math.min(array.length - 1, index)); if (index != order) { array.splice(order, 1); array.splice(index, 0, element); } return index; } static listKeysOfObject(obj) { let keys = []; for (let key in obj) { keys.push(key); } return keys; } static listValuesOfObject(obj) { let values = []; for (let key in obj) { values.push(obj[key]); } return values; } } exports.ArrayUtil = ArrayUtil; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXJyYXlVdGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NlcnZlci91dGlscy9BcnJheVV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsTUFBYSxTQUFTO0lBQ2xCOzs7OztXQUtPO0lBQ0EsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFpQixFQUFFLFFBQWEsRUFBRSxRQUFhO1FBQ3RFLFNBQVMsQ0FBQyxjQUFjLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFDRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxjQUFjLENBQUMsS0FBaUIsRUFBRSxNQUFjLEVBQUUsTUFBYztRQUMxRSxJQUFJLEVBQUUsR0FBUSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QixLQUFLLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFpQixFQUFFLE9BQVk7UUFDdkQsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDWCxPQUFPLEtBQUssQ0FBQztRQUNqQixLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFpQixFQUFFLE9BQVk7UUFDMUQsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJ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