source: frontend/node_modules/underscore/modules/_createIndexFinder.js

Last change on this file was 9af201e, checked in by MBK <marija.karapandzova@…>, 12 days ago

Fix frontend appearance

  • Property mode set to 100644
File size: 977 bytes
Line 
1import getLength from './_getLength.js';
2import { slice } from './_setup.js';
3import isNaN from './isNaN.js';
4
5// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions.
6export default function createIndexFinder(dir, predicateFind, sortedIndex) {
7 return function(array, item, idx) {
8 var i = 0, length = getLength(array);
9 if (typeof idx == 'number') {
10 if (dir > 0) {
11 i = idx >= 0 ? idx : Math.max(idx + length, i);
12 } else {
13 length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;
14 }
15 } else if (sortedIndex && idx && length) {
16 idx = sortedIndex(array, item);
17 return array[idx] === item ? idx : -1;
18 }
19 if (item !== item) {
20 idx = predicateFind(slice.call(array, i, length), isNaN);
21 return idx >= 0 ? idx + i : -1;
22 }
23 for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {
24 if (array[idx] === item) return idx;
25 }
26 return -1;
27 };
28}
Note: See TracBrowser for help on using the repository browser.