16

PHP で、次のコードがある場合:

$map = array(
  "first" => 1,
  "second" => 2
);

$map["third"] = 3;

foreach($map as $key => $value) {
  // code
}

エントリは、配列に追加された順序でリストされることがわかっています。

さて、同じルールが以下の同等の Javascript に適用されると仮定できますか?

map = {
  "first": 1,
  "second": 2
};

map["third"] = 3;

for (key in map) {
  // code
}

これは次の複製です: Elements order - for (… in …) loop in javascript

4

2 に答える 2

10

ほとんどのブラウザーは、オブジェクトに追加された順序でプロパティをループ処理しますが、Javascript 標準では順序が定義されていないため、この動作に依存するべきではありません。たとえば、Google Chrome が常にこの動作を示すとは限らないことについて、しばらく前にブログ記事を読みました。

順序付けされた機能が必要な場合は、オブジェクト キーと数字キーの両方を使用できる新しいクラスを自分で作成する必要があります。

于 2009-03-15T17:12:54.717 に答える
0

いいえ、動作は実装に依存し、保証されていません。順序を維持する必要がある場合は配列を使用します。

于 2009-03-15T17:04:32.083 に答える