是否保证对象键的顺序?

时间:2013-09-14 15:24:44

标签: javascript

如果我做这样的事情,然后用循环枚举inputMenu,是否保证我的for循环将按照我添加的顺序返回它们?或者这不保证?谢谢。

inputMenu = {
            IDOD: { text: "Diam (1=ID, 0=OD)", value: null },
            DIA: { text: "Diameter", value: null },
            THK: { text: "Segment Thickness", value: null },
            PLATEWIDTH: { text: "Plate Width", value: null },
            SEG_NEUT_AXIS: { text: "MID-ARC Length", value: null } };

for (var key in inputMenu) {    
   // Will I get IDOD -> DIA -> THK -> PLATEWIDTH -> SEG_NEUT_AXIS every time?
};

2 个答案:

答案 0 :(得分:0)

如果您需要保证订单,则应使用数组。不保证属性在for循环中出现的顺序。

答案 1 :(得分:0)

否:未指定订单且与实现有关。

来自the ECMAScript specification

  

枚举属性的机制和顺序(步骤6.a)   第一个算法,第二个步骤7.a未指定。

如果订单对您很重要,请使用数组。