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.
33 lines
1.0 KiB
33 lines
1.0 KiB
2 weeks ago
|
import basePullAll from './_basePullAll.js';
|
||
|
|
||
|
/**
|
||
|
* This method is like `_.pullAll` except that it accepts `comparator` which
|
||
|
* is invoked to compare elements of `array` to `values`. The comparator is
|
||
|
* invoked with two arguments: (arrVal, othVal).
|
||
|
*
|
||
|
* **Note:** Unlike `_.differenceWith`, this method mutates `array`.
|
||
|
*
|
||
|
* @static
|
||
|
* @memberOf _
|
||
|
* @since 4.6.0
|
||
|
* @category Array
|
||
|
* @param {Array} array The array to modify.
|
||
|
* @param {Array} values The values to remove.
|
||
|
* @param {Function} [comparator] The comparator invoked per element.
|
||
|
* @returns {Array} Returns `array`.
|
||
|
* @example
|
||
|
*
|
||
|
* var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];
|
||
|
*
|
||
|
* _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);
|
||
|
* console.log(array);
|
||
|
* // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]
|
||
|
*/
|
||
|
function pullAllWith(array, values, comparator) {
|
||
|
return (array && array.length && values && values.length)
|
||
|
? basePullAll(array, values, undefined, comparator)
|
||
|
: array;
|
||
|
}
|
||
|
|
||
|
export default pullAllWith;
|