var array_of_functions = [
first_function('a string'),
second_function('a string'),
third_function('a string'),
forth_function('a string')
]
array_of_functions[0];
Isso não funciona como planejado, porque cada função na matriz é executada quando a matriz é criada.
Qual é a maneira correta de executar qualquer função na matriz, fazendo:
array_of_functions[0]; // or, array_of_functions[1] etc.
Obrigado!
javascript
arrays
function
usuario
fonte
fonte
'a string'
necessidade de ser conhecido no momento em que a matriz é preenchida, ou pode o chamador da função passá-lo?Respostas:
e quando você deseja executar uma determinada função na matriz:
fonte
()
depoisarray_of_functions[0]
, mesmo que esteja vazio. Eu gasto 20 minutos apenas para descobrir 'por que isso não funcionou'.Eu acho que é isso que o pôster original pretendia realizar:
Espero que isso ajude outras pessoas (como eu, 20 minutos atrás :-) procurando alguma dica sobre como chamar funções JS em uma matriz.
fonte
Sem mais detalhes do que você está tentando realizar, estamos meio que supondo. Mas você pode se safar do uso da notação de objeto para fazer algo assim ...
e chamar um deles ...
fonte
Ou apenas:
fonte
Eu complementaria esse tópico postando uma maneira mais fácil de executar várias funções dentro de uma matriz usando o
shift()
método Javascript originalmente descrito aquifonte
É basicamente o mesmo,
Darin Dimitrov's
mas mostra como você pode usá-lo para criar e armazenar dinamicamente funções e argumentos. Espero que seja útil para você :)fonte
acima, vimos alguns com iteração. Vamos fazer a mesma coisa usando o forEach:
fonte
Isto está certo
fonte
opera
porarray_of_functions
e você tem a mesma coisa. Que tal agora?Se você estiver tentando algo como transmitir dinamicamente retornos de chamada, poderá passar um único objeto como argumento. Isso lhe dá um controle muito maior sobre quais funções você deseja executar com qualquer parâmetro.
fonte
Execução de muitas funções por meio de um retorno de chamada ES6
fonte
Talvez isso possa ajudar alguém.
fonte
Uma maneira curta de executar todos:
fonte
o problema desse conjunto de funções não está na "forma do array", mas na maneira como essas funções são chamadas ... então ... tente isso .. com um simples eval () ...
funciona aqui, onde nada estava fazendo o trabalho em casa ... espera que ajude
fonte
Usando Function.prototype.bind ()
fonte
Eu tenho muitos problemas tentando resolver este ... tentei o óbvio, mas não funcionou. Apenas acrescenta uma função vazia de alguma forma.
Eu o resolvi usando uma matriz de seqüências de caracteres e, posteriormente, com eval:
fonte
Ah cara, existem tantas respostas estranhas ...
compose
não é suportado por padrão, mas existem bibliotecas como ramda, lodash ou mesmo redux que fornecem essa ferramentafonte
você obteve algumas das principais respostas acima. Esta é apenas outra versão disso.
}
fonte
fonte