gamelet-cli
Version:
Download project from code.gamelet.com, edit/test in vscode and sync back to server.
126 lines • 8.2 kB
JavaScript
;
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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