2016-09-24 15 views
-1

私は、一連の機能を持っているとしましょう。どのように各関数に値を渡すのですか?ここで配列内の関数にパラメータを渡すにはどうすればよいですか?

は愚かな例です。

var poopSong =[ 

function(this){ console.log('this is '+this);}, 
function(this){ console.log('that is '+this);}, 
function(this){ console.log('you are '+this);}, 

]; 

poopSong("poop")[1]; 
+1

あなたは 'poopSong [1]( "うんこ")を意味し;'、右? 'forEach'ループを使用するだけです。 – Xufox

+0

なぜ 'array'の各引数で1つの関数を呼び出すことができる' arguments'の 'array'を使いたくないのですか? – DavidDomain

答えて

1

まずを持っている、あなたが渡すパラメータを変更する必要があり、thisが予約されていますあなたはそれを使いたいとは思わない。もちろんconsole.log()thisを参照することができます。しかし、私はこれがあなたの望むものだとは思わない。

var poopSong = [ 
    function(a){ console.log('this is '+a);}, 
    function(b){ console.log('that is '+b);}, 
    function(c){ console.log('you are '+c);}, 
]; 

その後、あなたは以下のようにこれらの関数に引数を渡すことができます:

poopSong[0]('you value'); 

私たちは、角括弧と取得するためのインデックスを使用するということでは、次のようにpoopSongのdeclartionが何かすべきです配列の項目であり、我々のケースでは項目はカッコを使用して対応する引数を渡すことができる関数なので、

var poopSong =[ 
 
    function(a){ console.log('this is '+a); }, 
 
    function(b){ console.log('that is '+b); }, 
 
    function(c){ console.log('you are '+c); } 
 
]; 
 

 
poopSong[0]("1"); 
 
poopSong[1]("2"); 
 
poopSong[2]("3");

+0

私は近くにありがとう、非常に多くの:D –

+0

@SonyThePonyあなたは大歓迎です!私は喜んで私が助けた:) – Christos

2

だけ配列を反復処理:

for(int i = 0; i < poopSong.Length; i++){ 
    poopSong[i]("poop"); //not poopSong("poop")[i]; 
} 
2

poopSongので、インデックスを使用し、アイテムを取得するには、配列です。配列内の項目は関数なので、()でパラメータ( "値")を渡して関数を実行します。

poopSong[1]("value"); 

ここで、各項目を処理したい場合は、ループを使用しますか?

for(var i = 0; i < poopSong.length; i++) 
{ 
    poopSong[i]("value"); 
} 

または機能プログラミングの世界では、forEachの

poopSong.forEach(function(item){ item("value"); }); 

はそのかなり基本的なものを引き起こす、あなたが後に実際にある何本ある、または私は何かが欠けています。第二に

、ドン; tは、パラメータとしてその予約語を語thisを使用するとJavaScript

全体他のコンテキスト
+0

配列全体を循環せずにインデックス1の関数を実行したかったらどうしますか? (forループ内の条件を使用して、私たちがどのインデックスにいるかを調べることができますが)インデックス1の関数に直接アクセスできますか? –

+0

umもちろん、配列全体を調べることなく、インデックス1の関数にアクセスすることができます。 'poopSong [1](" value ")'はそれを正確に行います。 – OJay

+0

このような厄介な瞬間、私は地図の方法に取り組んでいて、答えはとてもシンプルでしたが、私はあなたの忍耐のおかげで、私がちょうど学んだことを処理していました。 –

関連する問題