1 | var assocIndexOf = require('./_assocIndexOf');
|
2 |
|
3 | /** Used for built-in method references. */
|
4 | var arrayProto = Array.prototype;
|
5 |
|
6 | /** Built-in value references. */
|
7 | var splice = arrayProto.splice;
|
8 |
|
9 | /**
|
10 | * Removes `key` and its value from the list cache.
|
11 | *
|
12 | * @private
|
13 | * @name delete
|
14 | * @memberOf ListCache
|
15 | * @param {string} key The key of the value to remove.
|
16 | * @returns {boolean} Returns `true` if the entry was removed, else `false`.
|
17 | */
|
18 | function listCacheDelete(key) {
|
19 | var data = this.__data__,
|
20 | index = assocIndexOf(data, key);
|
21 |
|
22 | if (index < 0) {
|
23 | return false;
|
24 | }
|
25 | var lastIndex = data.length - 1;
|
26 | if (index == lastIndex) {
|
27 | data.pop();
|
28 | } else {
|
29 | splice.call(data, index, 1);
|
30 | }
|
31 | --this.size;
|
32 | return true;
|
33 | }
|
34 |
|
35 | module.exports = listCacheDelete;
|