Chrome下数值键对象按键名排序
直接上代码
let obj = {'2': 'val2', '1': 'val1', '3': 'val3'}
console.log(obj) // Chrome、FrieFox
let sortObj = Object.create(null)
Object.keys(obj).sort().reverse().map( key => {
sortObj[key] = obj[key]
})
console.log(sortObj)
预期的处理是为了实现对对象按键名倒序处理,但是结果确大大超出预期 -_-
Chrome下:

Firefox下:

起因:页面展示必须按年份倒序列表展示,而后端返回的数据格式升序数据集,此时就需要前端进一步处理数据,改为倒序排序方式,再在组件中渲染。
{
...
'2018': [{xxx}, ...],
'2019': [{xxx}, ...],
'2020': [{xxx}, ...]
...
}
在菜鸡处理无效后,一顿稀里哗啦的搜索后,得出的结论是:Chrome使用数字键对属性进行数字排序 。具体的解答还是参照stackoverflow的原版回答会更好。
