Repository URL to install this package:
|
Version:
1.2.8 ▾
|
"use strict";
/** @ignore 🚧 wip */
const MapCache = require("./MapCache");
const isNil = require("../is/nullOrUndefined");
/** Used to stand-in for `undefined` hash values. */
const HASH_UNDEFINED = '__lodash_hash_undefined__';
let SetCache = class SetCache {
/**
* Creates an array cache object to store unique values.
*
* @constructor
* @param {Array} [values] The values to cache.
*/
constructor(values) {
let index = -1;
const length = isNil(values) ? 0 : values.length;
this.__data__ = new MapCache();
while (++index < length) {
this.add(values[index]);
}
}
/**
* Adds `value` to the array cache.
*
* @memberOf SetCache
* @alias push
* @param {*} value The value to cache.
* @returns {Object} Returns the cache instance.
*/
add(value) {
this.__data__.set(value, HASH_UNDEFINED);
return this;
}
/**
* Checks if `value` is in the array cache.
*
* @memberOf SetCache
* @param {*} value The value to search for.
* @returns {number} Returns `true` if `value` is found, else `false`.
*/
has(value) {
return this.__data__.has(value);
}
};
SetCache.prototype.push = SetCache.prototype.add;
module.exports = SetCache;