Написал решение, matchingUsers выдает подходящий. Но возникает TypeError. Помогите разобраться. Это из-за того, что в цикле использую indexOf() ?
var usersData = ['Виталий Иванович', 'Иннокентий Петрович', 'Александр Александрович', 'Игорь Олегович', 'Евгений Петрович', 'Игнат Денисович', 'Сергей Александрович', 'Семён Петрович'];
var query = 'Петрович';
var matchingUsers = 0;
for (var i = 0; i <=usersData.length; i++ ) {
var userStr = usersData[i];
if (userStr.indexOf(query) >= 0) {
matchingUsers++;
console.log ('в ' + usersData[i] + ' обнаружено ' + query + '. Прибавляем одно совпадение. Сейчас их ' + matchingUsers);
} else {
console.log('в ' + usersData[i] + ' не обнаружено ' + query);
}
}
console.log(matchingUsers);
В IDE ошибка:
в Иннокентий Петрович обнаружено Петрович. Прибавляем одно совпадение. Сейчас их 1
в Александр Александрович не обнаружено Петрович
в Игорь Олегович не обнаружено Петрович
в Евгений Петрович обнаружено Петрович. Прибавляем одно совпадение. Сейчас их 2
в Игнат Денисович не обнаружено Петрович
в Сергей Александрович не обнаружено Петрович
в Семён Петрович обнаружено Петрович. Прибавляем одно совпадение. Сейчас их 3
C:\Users\ae\Projects\untitled\testo.js:6
if (usersData[i].indexOf(query,0) >= 0) {
^
TypeError: Cannot read property 'indexOf' of undefined
at Object.<anonymous> (C:\Users\ae\Projects\untitled\testo.js:6:22)
at Module._compile (internal/modules/cjs/loader.js:702:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:713:10)
at Module.load (internal/modules/cjs/loader.js:612:32)
at tryModuleLoad (internal/modules/cjs/loader.js:551:12)
at Function.Module._load (internal/modules/cjs/loader.js:543:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:744:10)
at startup (internal/bootstrap/node.js:240:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:564:3)