| /** |
| * A specialized version of `_.filter` for arrays without support for callback |
| * shorthands and `this` binding. |
| * |
| * @private |
| * @param {Array} array The array to iterate over. |
| * @param {Function} predicate The function invoked per iteration. |
| * @returns {Array} Returns the new filtered array. |
| */ |
| function arrayFilter(array, predicate) { |
| var index = -1, |
| length = array.length, |
| resIndex = -1, |
| result = []; |
| |
| while (++index < length) { |
| var value = array[index]; |
| if (predicate(value, index, array)) { |
| result[++resIndex] = value; |
| } |
| } |
| return result; |
| } |
| |
| module.exports = arrayFilter; |