Suma elementów tablicy równa pierwszemu argumentowi funkcji

0

Cześć,

niedawno zacząłem przygodę z programowaniem w JS i mam pewne zadanie, z którym mam trudności:

Napisz funkcję addTheSameNumbers, która ma przyjmować dwa argumenty liczbę i tablicę. Funkcja ta ma zwracać sumę
wszystkich elementów tablicy, które są równe liczbie podanej jako pierwszmy argument funkcji. Jeżeli liczby, podanej jako pierwszy argument funkcji nie ma w tablicy, zwróć null.

addTheSameNumbers(7, [4, 7, 24, 7, 0, 10]) => 14
addTheSameNumbers(9, [33, 54, 2, 1, 9, 100] ) => 9
addTheSameNumbers(0, [33, 0, 2, 0, 9, 0] ) => 0
addTheSameNumbers(43, [6, 0, 2, 2, 3, 46] ) => null

Oto mój kod:

function addTheSameNumbers(number,array){
	
	var sum = 0;
		
	for(var i = 0; i < array.length; i++){
		
		if(number == array[i]){
			
			sum += array[i];
		}
			
		else {
			
			return null;
		}	
	}
	
	return sum;
}
console.log(addTheSameNumbers(7, [4, 7, 24, 7, 0, 10]));
console.log(addTheSameNumbers(9, [33, 54, 2, 1, 9, 100]));

Kiedy wywalę else, to działa, jak zostawiam else to ciągle zwraca null. I tak źle i tak niedobrze. Może ktoś mnie naprowadzić co robię źle?

0
function addTheSameNumbers(number,array){

    var sum = null;

    for(var i = 0; i < array.length; i++){

        if(number == array[i]){

            sum += array[i];
        }       
    }
    if(sum==null)
        return null;
    return sum;
}
0

Dzięki. Pytanie - czemu nie działa po prostu else { return null } ?

1

Pomyśl. Weżmy pierwszy zestaw danych. W pierwszym kroku sprawdzasz czy 4 równa się 7. Nie równa się więc wchodzisz do else. A w else masz return który natychmiast wychodzi z funkcji i zwraca nulla.

0

Dzięki!

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