Учитывая массив, я пытаюсь вернуть последние четные числа вплоть до заданного «числа» элементов в новом массиве, его также необходимо вернуть в исходном порядке.Я написал следующий код:
function evenNumbers(array, number) {
let newarr = [];
for (let i = array.length - 1; newarr.length < number; i-=1){
if (i % 2 == 0){
newarr.push(i);}}
return newarr.reverse();}
Итак, я пытаюсь начать с конца данного массива и вставлять только четные числа в новый массив, вплоть до длины указанного числа "длина"новый массив и вернуть их в исходном порядке.Кажется, он работает нормально, за исключением того, что в некоторых он возвращает массив, содержащий числа, которых нет в исходном массиве, над которым я зацикливаюсь.Чего мне не хватает?
Например: evenNumbers([-22, 5, 3, 11, 26, -6, -7, -8, -9, -8, 26], 2)
возвращает [8, 10], когда он должен вернуть [-8, 26]
Он правильно возвращает четные числа и число или четные числа Iхочу, но 8 и 10. даже нет в данном массиве.
Я думал, что мой цикл for настроен правильно.Он начинается в конце массива let i = array.length - 1;
, продолжается до тех пор, пока это верно newarr.length < number;
и повторяется один шаг за раз i-=1
Мой следующий вопрос: как мой цикл for узнает, какоймассив, который я хочу перебрать?Я новичок в JavaScript, так как я знаю Python, который использует «для я в массиве», поэтому он знает, какой массив / список вы перебираете.Спасибо!