Вызов "Аналитика пользователей" (Глава 4, Массивы)

Написал решение, 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)

У вас условие в цикле неправильное. Нужно просто знак < . Так как цикл выходит за пределы массива. Ну либо сделать вот так usersData.length - 1.

Summary
var usersData = ['Виталий Иванович', 'Иннокентий Петрович', 'Александр Александрович', 'Игорь Олегович', 'Евгений Петрович', 'Игнат Денисович', 'Сергей Александрович', 'Семён Петрович'];
var query = 'Александрович';
var matchingUsers = 0;
for (var i = 0;i< usersData.length;i++) {
  if(usersData[i].indexOf(query) >= 0) {
    matchingUsers++;
  }
}

поддерживаю

var usersData = ['Виталий Иванович', 'Иннокентий Петрович', 'Александр Александрович', 'Игорь Олегович', 'Евгений Петрович', 'Игнат Денисович', 'Сергей Александрович', 'Семён Петрович'];
var query = 'Александрович';
var matchingUsers = 0;

for (var i = 0; i <= usersData.length - 1; i++) {
  if (usersData[i].indexOf(query) > -1) {
      matchingUsers++;
  }
}