You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
5.0 KiB
47 lines
5.0 KiB
|
3 weeks ago
|
"use strict";
|
||
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
|
exports.createMembershipSet = createMembershipSet;
|
||
|
|
exports.membershipAdd = membershipAdd;
|
||
|
|
exports.membershipHas = membershipHas;
|
||
|
|
exports.membershipDelete = membershipDelete;
|
||
|
|
exports.membershipClear = membershipClear;
|
||
|
|
exports.membershipFromArray = membershipFromArray;
|
||
|
|
exports.membershipToArray = membershipToArray;
|
||
|
|
exports.membershipDedupeArray = membershipDedupeArray;
|
||
|
|
exports.membershipForEach = membershipForEach;
|
||
|
|
function createMembershipSet() {
|
||
|
|
return new Map();
|
||
|
|
}
|
||
|
|
function membershipAdd(set, key) {
|
||
|
|
set.set(key, true);
|
||
|
|
return set;
|
||
|
|
}
|
||
|
|
function membershipHas(set, key) {
|
||
|
|
return set.has(key);
|
||
|
|
}
|
||
|
|
function membershipDelete(set, key) {
|
||
|
|
return set.delete(key);
|
||
|
|
}
|
||
|
|
function membershipClear(set) {
|
||
|
|
set.clear();
|
||
|
|
}
|
||
|
|
function membershipFromArray(items) {
|
||
|
|
const set = createMembershipSet();
|
||
|
|
for (const item of items) {
|
||
|
|
set.set(item, true);
|
||
|
|
}
|
||
|
|
return set;
|
||
|
|
}
|
||
|
|
function membershipToArray(set) {
|
||
|
|
return [...set.keys()];
|
||
|
|
}
|
||
|
|
/** 去重数组(替代 Array.from(new Set(...)) / [...new Set(...)]) */
|
||
|
|
function membershipDedupeArray(items) {
|
||
|
|
return membershipToArray(membershipFromArray(items));
|
||
|
|
}
|
||
|
|
function membershipForEach(set, fn) {
|
||
|
|
for (const key of set.keys()) {
|
||
|
|
fn(key);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVtYmVyc2hpcFNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NvdXJjZS9NZW1iZXJzaGlwU2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0Esa0RBRUM7QUFFRCxzQ0FHQztBQUVELHNDQUVDO0FBRUQsNENBRUM7QUFFRCwwQ0FFQztBQUVELGtEQU1DO0FBRUQsOENBRUM7QUFHRCxzREFFQztBQUVELDhDQUlDO0FBMUNELFNBQWdCLG1CQUFtQjtJQUMvQixPQUFPLElBQUksR0FBRyxFQUFXLENBQUM7QUFDOUIsQ0FBQztBQUVELFNBQWdCLGFBQWEsQ0FBSSxHQUFxQixFQUFFLEdBQU07SUFDMUQsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkIsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDO0FBRUQsU0FBZ0IsYUFBYSxDQUFJLEdBQTZCLEVBQUUsR0FBTTtJQUNsRSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDeEIsQ0FBQztBQUVELFNBQWdCLGdCQUFnQixDQUFJLEdBQXFCLEVBQUUsR0FBTTtJQUM3RCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUVELFNBQWdCLGVBQWUsQ0FBSSxHQUFxQjtJQUNwRCxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDaEIsQ0FBQztBQUVELFNBQWdCLG1CQUFtQixDQUFJLEtBQWtCO0lBQ3JELE1BQU0sR0FBRyxHQUFHLG1CQUFtQixFQUFLLENBQUM7SUFDckMsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN2QixHQUFHLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUksR0FBNkI7SUFDOUQsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7QUFDM0IsQ0FBQztBQUVELDREQUE0RDtBQUM1RCxTQUFnQixxQkFBcUIsQ0FBSSxLQUFrQjtJQUN2RCxPQUFPLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDekQsQ0FBQztBQUVELFNBQWdCLGlCQUFpQixDQUFJLEdBQTZCLEVBQUUsRUFBb0I7SUFDcEYsS0FBSyxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztRQUMzQixFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDWixDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiDpobnnm67npoHnlKjljp/nlJ8gU2V077yI5bCP5ri45oiP6L+Q6KGM5pe25a+56YOo5YiGIFNldCDnlKjms5XkuI3nqLPlrprvvInjgIJcclxuICog55SoIE1hcDxLLCB0cnVlPiDooajnpLrmiJDlkZjpm4blkIjvvIxBUEkg5LiOIFNldCDlr7npvZDjgIJcclxuICovXHJcbmV4cG9ydCB0eXBlIE1lbWJlcnNoaXBTZXQ8Sz4gPSBNYXA8SywgdHJ1ZT47XHJcbmV4cG9ydCB0eXBlIFJlYWRvbmx5TWVtYmVyc2hpcFNldDxLPiA9IFJlYWRvbmx5TWFwPEssIHRydWU+O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZU1lbWJlcnNoaXBTZXQ8Sz4oKTogTWVtYmVyc2hpcFNldDxLPiB7XHJcbiAgICByZXR1cm4gbmV3IE1hcDxLLCB0cnVlPigpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWVtYmVyc2hpcEFkZDxLPihzZXQ6IE1lbWJlcnNoaXBTZXQ8Sz4sIGtleTogSyk6IE1lbWJlcnNoaXBTZXQ8Sz4ge1xyXG4gICAgc2V0LnNldChrZXksIHRydWUpO1xyXG4gICAgcmV0dXJuIHNldDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1lbWJlcnNoaXBIYXM8Sz4oc2V0OiBSZWFkb25seU1lbWJlcnNoaXBTZXQ8Sz4sIGtleTogSyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHNldC5oYXMoa2V5KTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1lbWJlcnNoaXBEZWxldGU8Sz4oc2V0OiBNZW1iZXJzaGlwU2V0PEs+LCBrZXk6IEspOiBib29sZWFuIHtcclxuICAgIHJldHVybiBzZXQuZGVsZXRlKGtleSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtZW1iZXJzaGlwQ2xlYXI8Sz4oc2V0OiBNZW1iZXJzaGlwU2V0PEs+KTogdm9pZCB7XHJcbiAgICBzZXQuY2xlYXIoKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1lbWJlcnNoaXBGcm9tQXJyYXk8Sz4oaXRlbXM6IEl0ZXJhYmxlPEs+KTogTWVtYmVyc2hpcFNldDxLPiB7XHJcbiAgICBjb25zdCBzZXQgPSBjcmVhdGVNZW1iZXJzaGlwU2V0PEs+KCk7XHJcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcclxuICAgICAgICBzZXQuc2V0KGl0ZW0sIHRydWUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHNldDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1lbWJlcnNoaXBUb0FycmF5PEs+KHNldDogUmVhZG9ubHlNZW1iZXJzaGlwU2V0PEs+KTogS1tdIHtcclxuICAgIHJldHVybiBbLi4uc2V0LmtleXMoKV07XHJcbn1cclxuXHJcbi8qKiDljrvph43mlbDnu4TvvIjmm7/ku6MgQXJyYXkuZnJvbShuZXcgU2V0KC4uLikpIC8gWy4uLm5ldyBTZXQoLi4uKV3vvIkgKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1lbWJlcnNoaXBEZWR1cGVBcnJheTxLPihpdGVtczogSXRlcmFibGU8Sz4pOiBLW10ge1xyXG4gICAgcmV0dXJuIG1lbWJlcnNoaXBUb0FycmF5KG1lbWJlcnNoaXBGcm9tQXJyYXkoaXRlbXMpKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1lbWJlcnNoaXBGb3JFYWNoPEs+KHNldDogUmVhZG9ubHlNZW1iZXJzaGlwU2V0PEs+LCBmbjogKGtleTogSykgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgZm9yIChjb25zdCBrZXkgb2Ygc2V0LmtleXMoKSkge1xyXG4gICAgICAgIGZuKGtleSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|