我正在创建一个JavaScript对象,如下所示
var myObjects ; for(var i = 0; i <10;i++){ var eachObject = {"id" : i}; myObjects .push(eachObject ); } message = { "employeeDetails" : myObjects }
之后,我将它们如下
JSON.stringify(message);
上面的方法是否按照对象先前的顺序对它们进行了字符串化处理?字符串化后,它们将按照以前的顺序排列为0,1,2 .... 9吗?
文档中没有任何内容可以明确确认数组项的顺序已保留。但是,文档指出,对于非数组属性,不能保证顺序:
非数组对象的属性不能保证以任何特定顺序进行字符串化。不要依赖于字符串化中同一对象内属性的顺序。
https://developer.mozilla.org/zh- CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
即使保留数组项的顺序,我也不会指望它,而是自己对这些项进行排序。毕竟,很可能会有一些业务或表示逻辑来指示应如何对项目进行分类。