2011-08-07 13 views
0

関数「meanValue」を呼び出した直後にIntellisenseはほとんど機能しなくなりますこの単純なJavascript関数に何か問題がありますか?

私はそれを絞り込んだと思いますが、それはわかりません。どうやら、私は別の関数内で呼び出すと、intellisenseのすべての形式が機能しなくなるので、関数 "meanValue"には何か問題があります。これは私のコードです。私がmeanValue関数を呼び出した後、Intellisenseは機能テスト内のすべての機能を果たさない...

私はmeanValue関数が私にはうまく見えますか? // 編集:私はそれを絞り込んだ。明らかに、If(arr [0] .length)型の構文を持つ関数は、ほとんど失敗します。一つ注意すべき点は、関数はうまく動作し、デバッグは正常ですが、何らかの理由でintellisenseがこれを気に入らないということです。

誰かが何かが定義されているかどうかを確認する別の方法を知っていますか?私は多次元配列かどうか、私が見ている配列の種類を確認したい。

ありがとうございました!試験で //

<script language="javascript" type="text/javascript"> 

    function meanValue(arr) { 
     var mean; 
     var sum = 0; 

     if (arr[0].length) { 
      for (var j = 0; j < arr[0].length; j++) { 
       sum += arr[0][j]; 
      } 
      mean = (sum)/arr[0].length; 

     } 
     else { 
      for (var i = 0; i < arr.length; i++) { 
       sum += arr[i]; 
      } 
      mean = (sum)/arr.length; 


     } 
     return mean; 
    } 

    function test(a, b) { 
     var testing = 5; 
     var oranges = meanValue(a); 

    } 
    var a = [1, 3, 4]; 
    var b = [4, 5, 6]; 

</script> 
+0

@robertあなたは多次元配列として1次元配列を扱うしようとしている、言ったことに加えて。これは少なくともロジックエラーを引き起こすでしょう。 –

+0

何を待つ? ifステートメントは、arr [0] .lengthが定義されているかどうかを調べます。定義されていなければ、多次元配列ではなくelseステートメントに移動します。 – Spets

+0

ああ私はあなたがそこで何をしたかを見ます。それは理にかなっている。 –

答えて

0

私のNetbeansで問題を再現できました。

問題は、特定のIDEの場合、1つのファイルに2つの言語が混在しているように見えます。

IDE intellisenseエンジンは、何らかの理由で、コードの塊の中で、より小さい(<)記号を検証しようとしているかのように解析しようとしていますXML、Javascriptはそうではありません。もちろん、それは失敗しています。

このコードを[CDATA]にラップしてみてください。問題が解決するはずです。

したがって、上記の例では、変更され、次のようになります。

<script language="javascript" type="text/javascript"> 
//<![CDATA[ 
    function meanValue(arr) { 
     var mean; 
     var sum = 0; 

     if (arr[0].length) { 
      for (var j = 0 ; j < arr[0].length ; j++) 
      { 
       sum += arr[0][j]; 
      } 

      mean = (sum)/arr[0].length; 
     } 
     else 
     { 
      for (var i = 0; i < arr.length; i++) { 
       sum += arr[i]; 
      } 
      mean = (sum)/arr.length; 
     } 
     return mean; 
    } 

    function test(a, b) { 
     var testing = 5; 
     var oranges = meanValue(a); 
    } 

    var a = [1, 3, 4]; 
    var b = [4, 5, 6]; 
//]]> 
</script> 
+0

元の投稿を編集しました。 "var oranges = meanValue(a)"と言った後、intellisenseがtest()内のコード行に対して機能しないため、meanValue関数に何か問題があります – Spets

+0

同じことです。私はintellisenseの問題は、私が使用している関数somwhereのコード "if(a [0] .length){}"がかなり失敗したことに気づいています。 – Spets

+0

私は答え、感謝の男を受け入れた。私は明日それを試して、それが動作するかどうか見ていきます。もしそうなら、かなり素晴らしいでしょう。再度ありがとう、乾杯。 – Spets

1

()あなたは何も=の後に割り当てられていない変数のテストを、持っています。それは問題の一つかもしれません。

誰がtest()を呼び出していますか?

+0

いいえ、私はちょうど "var testing =" intellisense doesntがそこで動作することを示すために書きました... – Spets

+0

私はあなたのコードを実行し、 2.6666。また、** a **と** b **の前に 'var'を追加してください。また、test()、trueまたはorangeから何かを返すこともできます。 – robert

+0

"var testintoranges = meanValue(a);"の後に何かを書きます。インテリセンスが動作するかどうかを教えてください。 Thnx私はaとbのinfrontを固定しました。 私はコード実行を知っていますが、すべては問題ありませんが、インテリセンスは私にとっては非常に重要です。なぜなら、私は他の多くの機能を書いているからです。 – Spets

関連する問題