basant307/AI_Governance_Project
045
1var baseIteratee = require('./_baseIteratee'),2 basePullAt = require('./_basePullAt');3 4/**5 * Removes all elements from `array` that `predicate` returns truthy for6 * and returns an array of the removed elements. The predicate is invoked7 * with three arguments: (value, index, array).8 *9 * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`10 * to pull elements from an array by value.11 *12 * @static13 * @memberOf _14 * @since 2.0.015 * @category Array16 * @param {Array} array The array to modify.17 * @param {Function} [predicate=_.identity] The function invoked per iteration.18 * @returns {Array} Returns the new array of removed elements.19 * @example20 *21 * var array = [1, 2, 3, 4];22 * var evens = _.remove(array, function(n) {23 * return n % 2 == 0;24 * });25 *26 * console.log(array);27 * // => [1, 3]28 *29 * console.log(evens);30 * // => [2, 4]31 */32function remove(array, predicate) {33 var result = [];34 if (!(array && array.length)) {35 return result;36 }37 var index = -1,38 indexes = [],39 length = array.length;40 41 predicate = baseIteratee(predicate, 3);42 while (++index < length) {43 var value = array[index];44 if (predicate(value, index, array)) {45 result.push(value);46 indexes.push(index);47 }48 }49 basePullAt(array, indexes);50 return result;51}52 53module.exports = remove;54 