let i = 10, arr = [];
while (i--) {
arr.push(() => i + i);
}
console.log([arr[0](), arr[0]()])
У тебя в while стоит условие i--, цикл while работает до тех пор пока его условие не будет false, вот он тебе и выводит -2(не понимаю зачем ты одно и тоже два раза выводишь, это не двумерный массив), и ещё не обязательно кидать внутрь функцию, а потом использовать её, вот маленький пример:
let i = 10, arr = [];
while (i > 8) {//тут в () вводим условие например при i > 8, тогда останавливаемся выведет 10, 9
arr.push(i);// закидываем в массив число которое сейчас в цикле в массив
i--;// и уменьшаем наше число для цикла на 1
}
console.log(arr);