JSFiddle - React, Tailwind, and code Playground
JavaScript
var arr = ["Partner1", "Partner2"]
var needle = "partner2"
var n = findInArray(needle, arr, true, false);
console.log(n);
function findInArray(needle, arr, exact, sensitive) {
//Check if these attributes were even given
if (typeof needle != 'undefined' && typeof arr != 'undefined') {
if (arr.length < 1) {
return -1;
}
if (typeof exact == 'undefined') {
//Also making sure it's always set. Defaults to false.
exact = false;
}
if (sensitive == 'undefined') {
//Also making sure it's always set. Defaults to false.
sensitive = false;
}
//We will catch the sensitivity parameter here to save performance
if (!sensitive) {
needle = needle.toLowerCase();
}
//determine array length
var hayLength = arr.length;
for (var i = 0; i < hayLength; i++) {
//Set haystack
var haystack = arr[i];
//Check if it's another array. If so, redo this function to go 1 level deeper.
if (haystack.constructor == Array) {
return findInArray(needle, haystack, exact, sensitive);
}
//We can lowercase it here to save on if-statement lowercasing
if (!sensitive) {
haystack = haystack.toLowerCase();
}
//easy one
if (exact && sensitive && (haystack == needle)) {
return i;
} else if (exact & (haystack == needle)) {
return i;
} else if (!exact & (haystack.search(needle)) > -1) {
return i;
}
}
}
return -1;
}