(arrOfNumbers, str) => {
for (let i = 0; i < arrOfNumbers.length; i++) {
let result = [];
if (str === "even" && arrOfNumbers[i] % 2 === 0) {
result.push(i);
} else if (str === "odd" && arrOfNumbers[i] % 2 === 1) {
result.push(i);
}
return result;
}
};
const data = [1, 2, 3, 4, 5, 6];
console.log(getNumbersByParity(data, "even")); // [2, 4, 6];
console.log(getNumbersByParity(data, "odd")); // [1, 3, 5];
result [ 0 ] [ 0 ]
А, ясно. Во-перых, наго объявить result перед циклом, а не внутри. Во-вторых надо пушить не индексы, а числа из массива
Используй filter и не городи огород
Так фильтр вернёт только 1 тип, а тут если дописать второй массив сразу получится 1 массив честные, второй нечетные
Фильтр в зависимости от условия вернёт то что нужно
Мне кажется ты вообще не понял, что там происходит
Верно понял? В результат по четным [], нечетным [1]
Попробую еще фильтр после этого, спасибо)
Неверно понял. Ты в массив что хочешь положить?
Я бы зафигачил фореч и тернаркой
Он и так O(n)
arr.forEach(el => (str === "even") ? arr.filter(el => (el%2) == 0) : arr.filter(el => (el%2) != 0)) Я с телефона сам уже подкорректируй
Мысль автора не понятна, запутал ещё больше) зачем forEach?
Верно? Возвращает правда исходный массив 👽
Он не нужен вначале просто тернаркой хотел,с телефона отправил забыл удалить
Тут вообще O (n*n*n)
Почему, push же линелен.
Че ты у меня спрашиваешь, не я писал фильтр внутри пуша)
Обсуждают сегодня