Sprawdzi mi ktoś zadanko :)

0

Zadanie 1
Masz daną tablicę: const numbers = [2, 5, 7, 10, 34, 16, 879, 1]. Napisz funkcję, która wypisze w konsoli nową tablicę zawierającą tylko parzyste liczby z tablicy numbers.

Mój kod:

const numbers = [2, 5, 7, 10, 34, 16, 879, 1]
const newNumbers = [];
function evenNumbers()
{
	for(let i = 0; i < numbers.length; i++)
	{
		if( numbers[i] % 2 === 0)
		{
			newNumbers.push(numbers[i]);
		}
	}
}

Jak byście to inaczej zrobili ?

1

Wynik wykonania tego kodu w konsoli to undefined. Wynik wyświetlenia tablicy newNumbers to pusta tablica. Znaczy, zadanie niekompletne. :)

A jak inaczej mogłaby wyglądać sama funkcja? Powinna wyświetlać, to raz. Dwa, że można wykorzystać metodę Array.prototype.filter.


UPDATE: Jeszcze słówko na temat nazewnictwa. Funkcji nie nazywałbym evenNumbers, bo to brzmi, jakby była tablicą. Myślę, że lepiej byłoby napisać np. findEvenNumbers. W takim kodzie jak Twój nie ma to praktycznie żadnego znaczenia, ale w większych kodach jest podstawą dobrej architektury. Ale – zauważ, że funkcja odwołuje się do zewnętrznej zmiennej (nie lokalnej dla niej), a to rodzi pewien problem, bo findEvenNumbers sugeruje, że funkcja zwraca te liczby. I tutaj – osobiście wolałbym, żeby funkcja jednak zwracała nową tablicę, niż operowała na zmiennej zewnętrznej.

3

Ja bym to zrobił tak:

const numbers = [2, 5, 7, 10, 34, 16, 879, 1]

function evenNumbers(arr) {
	console.log(arr.filter(number => number % 2 === 0));
}

evenNumbers(numbers);
0

Dlaczego nie korzystacie z gotowych rozwiązań - np. is-odd.

1 użytkowników online, w tym zalogowanych: 0, gości: 1