Przekazanie funkcji jako parametr

0

Cześć,

z takim problemem się zmagam dzisaij i nie bardzo mogę sobie poradzić. Będę wdzięczny za pomoc, albo info, że się tak nie da ;)
mam kod:

function boardService(fnctn){
	for (var i=0; i<boardSize; i++)
		for (var j=0; j<boardSize; j++)
			Board[i][j] = fnctn;
}

służy on do obsługi planszy. Domyślnie w zmiennej fnctn chcę wywoływać inne fukcję. Czy da się przesłać wartość [i] i [j] do następnej funkcji?

szybki przykład:

 function nowaFunkcja(){
  if ((i + j)% 2 === 1)
     return 1;
     return 0;
}

boardService(nowaFunckaj);

Pozdro i z góy dziękuję.

0

wyslij(a, b)
function wyslij(a, b){

O to chodzi?

0

w funkcji boardService chcę uruchomić funkcję nowaFunkcja z wartościami i i j z funkcji boardService.

2

Wystarczy, że ją wywołasz :)

 function nowaFunkcja(i, j) {
     if ((i + j) % 2 === 1)
         return 1;
         return 0;
 }

 function boardService(fnctn) {
     for (var i = 0; i < boardSize; i++)
         for (var j = 0; j < boardSize; j++)
             Board[i][j] = fnctn(i, j); // <---------- dodaje nawiasy i przekazuje parametry
 }
 boardService(nowaFunckaj);

Dodam tylko, że Twój kod jest nieczytelny jak cholera.

 function nowaFunkcja(i, j) {
     if ((i + j) % 2 === 1) {
         return 1;
     }

     return 0;
 }

 // lub

 function nowaFunkcja(i, j) {
     return (i + j) % 2 === 1 ? 1 : 0;
 }

 function boardService(fnctn, board) {
     // dobrze by było, żeby funkcja nie modyfikowała sobie zmiennych z zewnątrz, ani tych przekazanych
     // więc kopujemy przekazaną tablice
     var newBoard = board.map(function(arr) {
         return arr.slice();
     });
     for (var i = 0, boardSize = newBoard.length; i < boardSize; i++) {
         for (var j = 0; j < boardSize; j++) {
             newBoard[i][j] = fnctn(i, j);
         }
     }
  
     return newBoard;
 }

 Board = boardService(nowaFunckaj, Board);

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