datasquirel/dist/package-shared/utils/unique-by-key.js
2025-07-05 16:14:11 +01:00

35 lines
1.1 KiB
JavaScript

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = uniqueByKey;
const slugify_1 = __importDefault(require("./slugify"));
function uniqueByKey(arr, key) {
let newArray = [];
let uniqueValues = [];
for (let i = 0; i < arr.length; i++) {
const item = arr[i];
let targetValue;
if (Array.isArray(key)) {
const targetVals = [];
for (let k = 0; k < key.length; k++) {
const ky = key[k];
const targetValuek = (0, slugify_1.default)(String(item[ky]));
targetVals.push(targetValuek);
}
targetValue = (0, slugify_1.default)(targetVals.join(","));
}
else {
targetValue = (0, slugify_1.default)(String(item[key]));
}
if (!targetValue)
continue;
if (uniqueValues.includes(targetValue))
continue;
newArray.push(item);
uniqueValues.push(targetValue);
}
return newArray;
}