0

URL からのクエリ文字列値を含む配列を作成しました

var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');

for (var i = 0; i < hashes.length; i++) {
     hash = hashes[i].split('=');
     vars[hash[0]] = hash[1];
}

それを繰り返したい場合、何も起こりません:

$.each(query_array, function(k, v) {
   console.log(v);
}); 

それから私は書いた

console.log(query_array.length);

しかし、私の配列は Chrome コンソールでは次のようになります。

[keyword: "mercedes", redirectTo: "test.aspx", remove: function]

長さは 0 を返します。

この種の配列をどのように反復処理できますか?

4

4 に答える 4

1

わかりました、これについて詳しく説明します。

JavaScript のすべてのオブジェクトは、Map(Dictionary) のように機能します。このようなもの。

var a = new Object();
a["foo"] = 10;
a["bar"] = 20;

...

Array( )も[]オブジェクトです。したがって、同じ動作を尊重します。このような...

var arr = [];
arr["foo"] = 10;
arr["bar"] = 20;

ただし、これは、使用されるはずの配列を使用していることを意味するものではありません。配列にプロパティを追加しても、配列に要素を追加していないため、長さのカウントは 0 です。そのため、カウントを個別のキー/値のペアとして保持する必要があります。

ご理解いただければ幸いです。

于 2013-06-28T06:09:23.377 に答える