-1

申し訳ありませんが、私はここで新しく、私のコードはおそらく正しく表示されません...

ドキュメントを反復処理して.each()で配列を見つけるにはどうすればよいですか?

私はこのようなことを考えていました:

//-----START OF CODE----\\
var a = new Array("a0", "a1", "a3");
var b = new Array("b0", "b1", "b3");
var i = 0;

function CountArrays()
{    
    $('Array').each(function(){

        i++;            
    });
    alert("There are " + i + " arrays in this document!");
}

CountArrays();
//-----END OF CODE----\\

しかし、アラートを受信しないため、$('Array')は進むべき道のようには思えません。

ご協力いただきありがとうございます!:)

4

1 に答える 1

1

いいえ、いいえ。これは動作しません。jQueryライブラリに精通してください。

$('foo');

この$()関数は、CSSセレクターをパラメーターとして除外し、jQueryオブジェクトを返します。変数だけを入れることはできません。JavascriptとHTMLは2つの異なるものです。

コード内の配列を反復処理する場合は、次を使用します。

var a = ["Hello","World"];
for (var i = 0; i < a.length; i++) {
    alert(a[i]);
}

配列を反復処理する方法はたくさんあります。参考のためにこれを参照してください。

2番目:前述のようalert()に、デバッグに使用することは、特に何かをループする場合はお勧めできません。console.log('string', variable)ChromeまたはFirefoxを使用している場合は、代わりに使用してください。変数をコンソールに直接書き込み、。では不可能な完全なオブジェクトもログに記録しますalert()

コメント後に更新:JavaScript内の既存のすべての配列を反復処理することはできません。これは、既存のすべての変数を一覧表示できないためです。1つの問題は、新しい関数ごとに新しいスコープを作成することです。

関数内の変数は、外部の変数については知りません。たとえば、これは有効なコードです。

var a = 5;

function foo() {
    var a = 6;

    return a;
}

console.log(a); // prints "5"
console.log(foo()); // prints "6"

両方の変数はと呼ばれますがa、それらには異なるデータが含まれています。詳細については、この回答を参照してください:https ://stackoverflow.com/a/2051693/735226

ちなみに、スクリプトに配列がいくつあるのか知りたいのはなぜですか?そして、オブジェクトにはこのような配列を含めることができるため

var objWithArray = {
    foo:5,
    bar:[3, 4, 5, 6, 7] // objWithArray.bar would be an array
};

すべての配列を取得する方法はありません。Javascriptは、タイプレスで変更可能な言語です。

于 2012-05-27T20:28:38.733 に答える