| import baseIndexOf from './.internal/baseIndexOf.js' | |
| /** | |
| * Gets the index at which the first occurrence of `value` is found in `array` | |
| * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) | |
| * for equality comparisons. If `fromIndex` is negative, it's used as the | |
| * offset from the end of `array`. | |
| * | |
| * @since 0.1.0 | |
| * @category Array | |
| * @param {Array} array The array to inspect. | |
| * @param {*} value The value to search for. | |
| * @param {number} [fromIndex=0] The index to search from. | |
| * @returns {number} Returns the index of the matched value, else `-1`. | |
| * @example | |
| * | |
| * indexOf([1, 2, 1, 2], 2) | |
| * // => 1 | |
| * | |
| * // Search from the `fromIndex`. | |
| * indexOf([1, 2, 1, 2], 2, 2) | |
| * // => 3 | |
| */ | |
| function indexOf(array, value, fromIndex) { | |
| const length = array == null ? 0 : array.length | |
| if (!length) { | |
| return -1 | |
| } | |
| let index = fromIndex == null ? 0 : +fromIndex | |
| if (index < 0) { | |
| index = Math.max(length + index, 0) | |
| } | |
| return baseIndexOf(array, value, index) | |
| } | |
| export default indexOf |