0

如果我做这样的事情,然后用循环枚举 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?
};
4

2 回答 2

0

如果你想要保证顺序,你应该使用一个数组。不保证属性出现在 for in 循环中的顺序。

于 2013-09-14T15:27:57.497 回答
0

否:未指定顺序并且取决于实现。

来自ECMAScript 规范

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

如果顺序对您很重要,请使用数组。

于 2013-09-14T15:28:07.213 回答