v-for循环会先判断是否有iterator接口,如果有循环执行next()方法,没有则会调用Object.keys()方法。
原生具备Iterator接口数据结构的:Array、Map、Set、TypedArray、函数的arguments对象、NodeList对象,对象(Object)没有默认部署 Iterator 接口。
Object.keys()方法会按照新元素是否为 array index
,界定是否重新排序并插入到开头。(简单理解:把能转换Number类型的key值进行排序,剩下的按先来后)
若业务需依赖对象 key 先来后到的排序、且涉及普通字符串与数字字符串的混合,再考虑到旧引擎的兼容问题的情况,另外维护一个 key 的数组会更加稳妥。