Это использует match
, потому что я думаю, что легче иметь дело с различными типами данных, хранящихся в значении.
function findTestObject(input) {
var testArray = [{
"label": "Nordea",
"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"]
}];
var r = new RegExp(input, "gi");
var result = [];
testArray.forEach(e=>{
if (e.value.toString().match(r)) {
result.push(e.label);
}
})
return result;
}
function test() {
var userInput = document.getElementById("input").value;
var result = findTestObject(userInput);
document.getElementById("result").innerHTML = (result.join(" ") || "Not Found");
}
<input id="input" placeholder="Enter something..." />
<button onclick="test()">Test</button>
<br /> Result:
<div id="result"></div>
Я не рассматриваю, поставил ли пользователь -
, который соответствует нескольким значениям, но это хорошо, например, вы можете легко исключить его.