-1

私のグローバル配列値をforループ内で使用できないのはなぜですか?

testing = [];


for (var x=0; x<10; x++){
    console.log(testing); 
}

「テスト」変数は動的に配列で埋められます


これは、 console.log(testing)でどのように見えるかです。*forループ なしhttp://i.stack.imgur.com/xKhqA.png

これは配列を埋める関数です

     function showMyVideos(data)
    {
        var feed = data.feed;
        var entries = feed.entry || [];
         for (var i = 0; i < entries.length; i++)
        {
            var entry = entries[i];
            var vid = (getVideoId(entry.link[0].href));
            testing[i] = vid;
        }       
  console.log(testing)
    }

この関数内でconsole.logを実行すると、次のようになります。

http * // goo.gl/nVfQn

*リンクを表示するには、(アスタリスク)を(コロン)に置き換えます

なぜですか、これをグローバルに宣言している間は、関数スコープ内でのみ機能します

4

1 に答える 1

1

それはエラーではありません。これは、コンソールに空の配列が表示されていることを示しています。これは、まさにあなたtestingが宣言されたものです。

エントリを取得しておらず、空の文字列に初期化されている可能性があります。

 var entries = feed.entry || [];

次に、ループしようとするとentries.length == 0

console.log(entries.length);ループの前に実行してみてください。

これを試して:

 testing = ["foo"];


for (var x=0; x<10; x++){
    console.log(testing);  
 }

コンソールに次のようなものが表示されます。

 >["foo"]
 >["foo"]
 >["foo"]
  ...and so on
于 2013-01-31T21:18:46.643 に答える