diff options
Diffstat (limited to 'node_modules/locutus/php/array/in_array.js')
-rw-r--r-- | node_modules/locutus/php/array/in_array.js | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/node_modules/locutus/php/array/in_array.js b/node_modules/locutus/php/array/in_array.js new file mode 100644 index 0000000..ad9f8fb --- /dev/null +++ b/node_modules/locutus/php/array/in_array.js @@ -0,0 +1,45 @@ +'use strict'; + +module.exports = function in_array(needle, haystack, argStrict) { + // eslint-disable-line camelcase + // discuss at: http://locutus.io/php/in_array/ + // original by: Kevin van Zonneveld (http://kvz.io) + // improved by: vlado houba + // improved by: Jonas Sciangula Street (Joni2Back) + // input by: Billy + // bugfixed by: Brett Zamir (http://brett-zamir.me) + // example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']) + // returns 1: true + // example 2: in_array('vlado', {0: 'Kevin', vlado: 'van', 1: 'Zonneveld'}) + // returns 2: false + // example 3: in_array(1, ['1', '2', '3']) + // example 3: in_array(1, ['1', '2', '3'], false) + // returns 3: true + // returns 3: true + // example 4: in_array(1, ['1', '2', '3'], true) + // returns 4: false + + var key = ''; + var strict = !!argStrict; + + // we prevent the double check (strict && arr[key] === ndl) || (!strict && arr[key] === ndl) + // in just one for, in order to improve the performance + // deciding wich type of comparation will do before walk array + if (strict) { + for (key in haystack) { + if (haystack[key] === needle) { + return true; + } + } + } else { + for (key in haystack) { + if (haystack[key] == needle) { + // eslint-disable-line eqeqeq + return true; + } + } + } + + return false; +}; +//# sourceMappingURL=in_array.js.map
\ No newline at end of file |