I have a function that is giving me some trouble. The code below returns the error message "Cannot read property 'value' of undefined". The function should just search through the values in the accountlist and return the one that starts with the submitted string. In the example, submitting "000555" should return 0.
var accountlist = [{
"value": "000555 - TEST ACCOUNT NAME1",
"data": "184"
}, {
"value": "006666 - TEST ACCOUNT NAME2",
"data": "450"
}, {
"value": "007777 - TEST ACCOUNT NAME2",
"data": "451"
}];
function startswith(inputlist, searchkey, inputstring) {
var searchlength = inputstring.length;
console.log("starting search");
for (var il = 0; il < inputlist.length; il++) {
if (inputlist[il].window[searchkey].substring(0, (searchlength - 1)) == inputstring) {
console.log("FOUND IT " + il + " " + inputstring);
return il
}
}
}
startswith(accountlist, "value","000555");
You could use the find function:
var accountlist = [{
"value": "000555 - TEST ACCOUNT NAME1",
"data": "184"
}, {
"value": "006666 - TEST ACCOUNT NAME2",
"data": "450"
}, {
"value": "007777 - TEST ACCOUNT NAME2",
"data": "451"
}];
var searchString = '000555';
var result = accountlist.findIndex((account) => { return account.value.startsWith(searchString);}, searchString)
console.log(result)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With