delphirtl
Version:
RTL functions from Delphi
65 lines • 3.59 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.haveNoDuplicates = haveNoDuplicates;
exports.dedupArray = dedupArray;
exports.maxLen = maxLen;
exports.sort = sort;
/**
* Deduplicates the given array
* @param values An array containing duplicated elements
* @returns The given array, but without duplicates
* @category Arrays
*/
function dedupArray(values) {
const result = Array.from(new Set(values));
return result;
}
/**
* Gets the length of the longest string in the given values array.
*
* @param {string[]} values
* @returns {number} The length of the longest string in the given values array.
* @category Arrays
*/
function maxLen(values) {
let result = 0;
for (const value of values) {
if (value.length > result) {
result = value.length;
}
}
return result;
}
/**
* Sorts the given values array and returns it
*
* @param {string[]} values
* @param {boolean} [ascending=true]
* @returns {string[]} The sorted values array, in a new array.
* @category Arrays
*/
function sort(values, ascending = true) {
let result = [...values];
if (ascending) {
result.sort((a, b) => a.localeCompare(b)); // descending order
}
else {
result.sort((a, b) => b.localeCompare(a)); // descending order
}
return result;
}
/**
* Compare all elements of arr1 and arr2 and ensure they have no duplicates
* @param arr1
* @param arr2
* @param key
* @returns true if there's duplicates, false otherwise
* @category Arrays
*/
function haveNoDuplicates(arr1, arr2, key) {
if ((arr1.length === 0) && (arr2.length === 0)) {
return true;
}
return arr1.every(item1 => !arr2.some(item2 => item1[key] === item2[key]));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXl1dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9hcnJheXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBK0RJLDRDQUFnQjtBQUNoQixnQ0FBVTtBQUNWLHdCQUFNO0FBQ04sb0JBQUk7QUFsRVI7Ozs7O0dBS0c7QUFDSCxTQUFTLFVBQVUsQ0FBQyxNQUFhO0lBQzdCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUMzQyxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsU0FBUyxNQUFNLENBQUMsTUFBZ0I7SUFDNUIsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUN6QixJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxFQUFFLENBQUM7WUFDeEIsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDMUIsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQVMsSUFBSSxDQUFDLE1BQWdCLEVBQUUsWUFBcUIsSUFBSTtJQUNyRCxJQUFJLE1BQU0sR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUM7SUFDekIsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUNaLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBbUI7SUFDbEUsQ0FBQztTQUFNLENBQUM7UUFDSixNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsbUJBQW1CO0lBQ2xFLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNsQixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsSUFBVyxFQUFFLElBQVcsRUFBRSxHQUFXO0lBQzNELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzdDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUMvRSxDQUFDIn0=