表格需要根据对象的key来渲染表头,在控制台查看到数组中的对象的属性排序是正确的,但是右键复制其中一个对象再打印出来,发现乱序了,使用Object.keys输出也是乱序的。
1.问题
原数组如下:
可以看到对象中2026在2025之后。
复制这个对象在控制打开,对象如下:
发现2026反而跑到最前面了。
在来一个例子:
可以看到定义的对象在输出的时候排序就变了。
2.原因
对象输出的时候,会先提取所有 key 的 parseFloat 值为非负整数的属性,然后根据数字顺序对属性排序裁剪出来放置在对象的前面,然后按照对象定义的顺序遍历余下的所有属性。
3. 解决
使用一个同步数组来保存原有的顺序,并用于显示