Самым ленивым способом эту функцию можно переписать так:
var block_show = []; // начальный массив, можно не инициировать null-ами
function scrollTracking(){
var wt = $(window).scrollTop();
var wh = $(window).height();
var elems = $(); // тут пишем селектор для выбора коллекции элементов, позиции которых нужно отследить
var elem_count = elems.length;
// перебираем элементы, и выводим что появилось на экране, что нет.
var et = null, eh = null;
for (var i = 0; i < elem_count; i++)
{
et = elems[i].offset().top; // тут уже получаем параметр от i-ого элемента
eh = elems[i].outerHeight(); // тут уже получаем параметр от i-ого элемента
if (wt + wh >= et && wt + wh - eh * 2 <= et + (wh - eh)){
if (block_show[i] === undefined || block_show[i] === null || block_show[i] === false) { // анализ block_show тоже от i-ого элемента
console.log('Блок ' + i + ' в области видимости');
}
block_show[i] = true; // установка block_show тоже от i-ого элемента
} else {
if (block_show[i] === undefined || block_show[i] === null || block_show[i] === true) { // анализ block_show тоже от i-ого элемента
console.log('Блок ' + i + ' скрыт');
}
block_show[i] = false; // установка block_show тоже от i-ого элемента
}
} // конец цикла обхода отслеживаемых элементов
}
Обратите внимание, что в if-ах проявилось сравнение с undefined, это позволяет не создавать первоначальный массив, наполненный null-ами, но можно наполнить по числу отслеживаемых элементов. И все сравнение идут по === это позволяет учитывать типы переменных при сравнении, оно более строгое.