charlike
Version:
Small, fast, simple and streaming project scaffolder for myself, but not only. Supports hundreds of template engines through the @JSTransformers API or if you want custom `render` function passed through options
63 lines (56 loc) • 2.1 kB
JavaScript
/*!
* arr-includes <https://github.com/tunnckoCore/arr-includes>
*
* Copyright (c) 2016 Charlike Mike Reagent <@tunnckoCore> (http://www.tunnckocore.tk)
* Released under the MIT license.
*/
'use strict'
var utils = require('./utils')
/**
* > Check any of `values` exists on `arr`.
*
* **Example**
*
* ```js
* var arrIncludes = require('arr-includes')
*
* console.log(arrIncludes([1, 'bar', 55], 2)) // => false
* console.log(arrIncludes([1, 'bar', 3], 3)) // => 2
*
* console.log(arrIncludes([1, 'bar', 3, true], false)) // => false
* console.log(arrIncludes([1, 'bar', 44, true], true)) // => 3
*
* console.log(arrIncludes(['foo', 'bar'], 'baz')) // => false
* console.log(arrIncludes(['foo', 'bar'], 'foo')) // => true
* console.log(arrIncludes(['qux', 'foo', 'bar'], 'foo')) // => 1
* console.log(arrIncludes([true, 'qqq', 'bar'], true)) // => true
* console.log(arrIncludes(['true', 'qqq', 'bar'], true)) // => false
* console.log(arrIncludes(['qqq', 'bar', true], true)) // => 2
* console.log(arrIncludes(['qqq', 'true', 'bar'], true)) // => false
* console.log(arrIncludes([false, 'foo', null, 'bar'], null)) // => 2
*
* console.log(arrIncludes(['foo', 'bar', 'qux'], ['a', 'b', 'c'])) // => false
* console.log(arrIncludes(['b', 'a', 'c'], ['a', 'b', 'c'])) // => 1
* console.log(arrIncludes(['foo', 'bb', 'b'], ['a', 'b'])) // => 2
* console.log(arrIncludes(['foo', 'bar', 'qux'], ['a', 'b', 'foo'])) // => true
* console.log(arrIncludes(['bar', 123, 'foo', 'qux'], ['a', 'b', 'foo'])) // => 2
* ```
*
* @param {Array} `arr` array to check
* @param {Array|String} `values` array or string
* @return {Boolean|Number} returns `false` if not found, `true` if **index is 0**
* from the array, otherwise `number` index
* @api public
*/
module.exports = function arrIncludes (arr, values) {
if (!utils.arr.isArray(values)) return utils.inArray(arr, values)
var len = values.length
var i = -1
while (i++ < len) {
var j = utils.inArray(arr, values[i])
if (j) {
return j
}
}
return false
}