diff options
Diffstat (limited to 'node_modules/find-index')
-rw-r--r-- | node_modules/find-index/README.md | 33 | ||||
-rw-r--r-- | node_modules/find-index/index.js | 26 | ||||
-rw-r--r-- | node_modules/find-index/last.js | 26 | ||||
-rw-r--r-- | node_modules/find-index/package.json | 25 |
4 files changed, 110 insertions, 0 deletions
diff --git a/node_modules/find-index/README.md b/node_modules/find-index/README.md new file mode 100644 index 000000000..034832e03 --- /dev/null +++ b/node_modules/find-index/README.md @@ -0,0 +1,33 @@ + +# find-index + +finds an item in an array matching a predicate function, +and returns its index + +fast both when `thisArg` is used and also when it isn't: [jsPerf](http://jsperf.com/array-prototype-findindex-shims) + +### usage +```bash +npm install find-index +``` +```js +findIndex = require('find-index') +findLastIndex = require('find-index/last') +``` + findIndex(array, callback[, thisArg]) + findLastIndex(array, callback[, thisArg]) + Parameters: + array + The array to operate on. + callback + Function to execute on each value in the array, taking three arguments: + element + The current element being processed in the array. + index + The index of the current element being processed in the array. + array + The array findIndex was called upon. + thisArg + Object to use as this when executing callback. + +based on [array-findindex](https://www.npmjs.org/package/array-findindex) diff --git a/node_modules/find-index/index.js b/node_modules/find-index/index.js new file mode 100644 index 000000000..61bff61af --- /dev/null +++ b/node_modules/find-index/index.js @@ -0,0 +1,26 @@ +function findIndex(array, predicate, self) { + var len = array.length; + var i; + if (len === 0) return -1; + if (typeof predicate !== 'function') { + throw new TypeError(predicate + ' must be a function'); + } + + if (self) { + for (i = 0; i < len; i++) { + if (predicate.call(self, array[i], i, array)) { + return i; + } + } + } else { + for (i = 0; i < len; i++) { + if (predicate(array[i], i, array)) { + return i; + } + } + } + + return -1; +} + +module.exports = findIndex diff --git a/node_modules/find-index/last.js b/node_modules/find-index/last.js new file mode 100644 index 000000000..186739a68 --- /dev/null +++ b/node_modules/find-index/last.js @@ -0,0 +1,26 @@ +function findLastIndex(array, predicate, self) { + var len = array.length; + var i; + if (len === 0) return -1; + if (typeof predicate !== 'function') { + throw new TypeError(predicate + ' must be a function'); + } + + if (self) { + for (i = len - 1; i >= 0; i--) { + if (predicate.call(self, array[i], i, array)) { + return i; + } + } + } else { + for (i = len - 1; i >= 0; i--) { + if (predicate(array[i], i, array)) { + return i; + } + } + } + + return -1; +} + +module.exports = findLastIndex diff --git a/node_modules/find-index/package.json b/node_modules/find-index/package.json new file mode 100644 index 000000000..228ac8f64 --- /dev/null +++ b/node_modules/find-index/package.json @@ -0,0 +1,25 @@ +{ + "name": "find-index", + "version": "0.1.1", + "description": "finds an item in an array matching a predicate function, and returns its index", + "main": "index.js", + "keywords": [ + "array", + "findindex" + ], + "files": [ + "index.js", + "last.js" + ], + "scripts": { + "test": "node test/test" + }, + "homepage": "https://github.com/jsdf/find-index", + "bugs": "https://github.com/jsdf/find-index/issues", + "repository": { + "type": "git", + "url": "git://github.com/jsdf/find-index.git" + }, + "author": "James Friend <james@jsdf.co> (http://jsdf.co/)", + "license": "MIT" +} |