1

ポイントのコンテンツと取得するマークを含むオブジェクトを作成しました

marks: {
                900: 1.0,
                822: 1.1,
                804: 1.2,
                786: 1.3,
                768: 1.4,
                750: 1.5,
                732: 1.6,
                714: 1.7,
                696: 1.8,
                678: 1.9,
                660: 2.0,
                588: 2.4,
                570: 2.5,
                552: 2.6,
                534: 2.7,
                516: 2.8,
                498: 2.9,
                480: 3.0,
                462: 3.1,
                444: 3.2,
                426: 3.3,
                408: 3.4,
                390: 3.5,
                372: 3.6,
                354: 3.7,
                336: 3.8,
                318: 3.9,
                300: 4.0
            },

コンソールにオブジェクトを表示すると、出力は次のようになります

オブジェクト { 300=4、318=3.9、336=3.8、さらに...}

http://jsfiddle.net/Sx4Z2/でライブを見ることができます

オブジェクトに順序があるのはなぜですか?

4

3 に答える 3

4

順序が重要な場合は、配列を使用する必要があります。JavaScript オブジェクトのプロパティの順序は信頼できません。あなたの場合、私は次のようなものを使用します:

[
    {key: 900, value: 1.0},
    {key: 822, value: 1.1},
    // ...
]

次の質問を見てください: JavaScript はオブジェクト プロパティの順序を保証しますか?

于 2013-10-28T18:22:11.543 に答える
2

ECMA-262 は、オブジェクト内のキーの順序を指定していません。ただし、次の点に注意してください。

  1. とにかく、ほとんどすべての JavaScript エンジンはキーの順序を保持します。
  2. ...これらのキーが整数でない限り、通常はそうではありません。

したがって、あなたの場合、キーに英字以外の文字列をプレフィックスとして付けると、予測可能な動作を提供できるはずです (ただし、標準に基づいていません)。

于 2013-10-28T18:23:48.773 に答える
2

それ自体ではありませんreorder。JavaScript オブジェクトには順序が指定されていません。順序が必要な場合は、配列を使用してください。

于 2013-10-28T18:24:05.880 に答える