| var baseUnset = require('./_baseUnset'), |
| isIndex = require('./_isIndex'); |
| |
| /** Used for built-in method references. */ |
| var arrayProto = Array.prototype; |
| |
| /** Built-in value references. */ |
| var splice = arrayProto.splice; |
| |
| /** |
| * The base implementation of `_.pullAt` without support for individual |
| * indexes or capturing the removed elements. |
| * |
| * @private |
| * @param {Array} array The array to modify. |
| * @param {number[]} indexes The indexes of elements to remove. |
| * @returns {Array} Returns `array`. |
| */ |
| function basePullAt(array, indexes) { |
| var length = array ? indexes.length : 0, |
| lastIndex = length - 1; |
| |
| while (length--) { |
| var index = indexes[length]; |
| if (length == lastIndex || index !== previous) { |
| var previous = index; |
| if (isIndex(index)) { |
| splice.call(array, index, 1); |
| } else { |
| baseUnset(array, index); |
| } |
| } |
| } |
| return array; |
| } |
| |
| module.exports = basePullAt; |