for(i = 0
На конечный результат не влияет, но переменная
i
должна быть объявлена. Погуглите, что происходит, если выполнить присваивание необъявленной переменной.
i<= n;
Неправильное количество итераций. Например, массив из десяти элементов, повторить пять раз - какая должна быть длина результирующего массива? Очевидно, 50 - произведение длины исходного массива и количества повторений. Вам почему-то кажется, что 5. Вернее 6 - индексация начинается с 0.
newArr[i] = a[i];
Так у вас значений в исходном массиве не хватит, они должны повторяться.
Т.е., должно быть как-то так.function arrayNtimes(a, n) {
const newArr = [];
for (let i = 0; i < n * a.length; i++) {
newArr[i] = a[i % a.length];
}
return newArr;
}
Но можно и покороче.const arrayNtimes = (a, n) => Array(n).fill(a).flat();