I need to search the value of each label , for any number match the user input if user input same as any number of the value , it shows the label , the code below is for showing result if input match the range between two numbers which I don't want
var testArray = [{
"label": "Nordea",
"value": ["77038-3532 - 19428 - 18073 - 08028 - 07058 - 07936 - 77038 - 3532 "]
}, {
"label": "Swedbank",
"value": ["77038-3532 - 19428 - 18073 - 08028 - 07058 - 07936 - 77038 - 3532 "]
}, {
"label": "Sparbanken Nord",
"value": "8264"
}, {
"label": "Sparbanken i Enköping",
"value": ["7121-7122", "8305-5"]
}];
function findTestObject(input) {
return testArray.find(function (testObj) {
var value = testObj.value;
if (Array.isArray(value)) {
return value.some(function (range) {
var rangeData = range.split('-');
return parseInt(rangeData[0]) <= input && input <= parseInt(rangeData[1]);
});
} else {
return value === input;
}
});
}
function test() {
var userInput = document.getElementById("input").value;
var result = findTestObject(userInput);
var label = result ? result.label : 'Not Found';
document.getElementById("result").innerHTML = label;
}
<input id="input" placeholder="Enter something..."/>
<button onclick="test()">Test</button>
<br />
Result: <div id="result"></div>