summaryrefslogtreecommitdiff
path: root/node_modules/locutus/php/array/in_array.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/locutus/php/array/in_array.js')
-rw-r--r--node_modules/locutus/php/array/in_array.js45
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