Если исправлять/дополнять существующий код, то, во-первых, определять первую цифру надо для каждого из элементов массива отдельно, т.е.
let first =
вам следовало разместить внутри цикла, а не перед ним; во-вторых, проще всего получить цифру старшего разряда можно превратив число в строку и взяв нулевой символ. Т.е., вы пытались изобразить нечто подобное:
for (const n of arr) {
const [ first ] = String(n);
if (first == 1 || first == 2 || first == 5) {
console.log(n);
}
}
Но вообще, можно сделать и иначе.
Вместо трёх проверок достаточно одной, если допустимые первые цифры представлены в подходящем виде, например, будут являться...
// ...строкой
const first = '125';
const startsWithFirst = n => !!~first.indexOf(`${n}`[0]);
// ...массивом чисел
const first = [ 1, 2, 5 ];
const startsWithFirst = n => first.includes(n / (10 ** (Math.log10(n) | 0)) | 0);
// ...регулярным выражением
const first = /^[125]/;
const startsWithFirst = n => first.test(n);
Кроме того, цикл в явном виде не нужен, собираем и выводим подходящие числа:
// все сразу
console.log(arr.filter(startsWithFirst));
// или по одному
arr.forEach(n => startsWithFirst(n) && console.log(n));