如何通过Lodash将对象转换为有序数组

Dav*_*nry 0 javascript arrays sorting object lodash

怎么转换{2:'b',3:'c',1:'a'}[{1:'a'},{2:'b'},{3:'c'}]lodash?

Rob*_* M. 6

使用Object.keys+ 非常简单Array.map,你真的不需要lodash:

const obj = {2:'b',3:'c',1:'a'};
const arr = Object.keys(obj).map(key => ({ [key]: obj[key] }))

console.log(arr)
Run Code Online (Sandbox Code Playgroud)

关于缺少sort函数,上面的代码利用了数字索引的Object键(按照规范)顺序存储的事实.自己检查订单:

console.log({2:'b',3:'c',1:'a'})
Run Code Online (Sandbox Code Playgroud)

这是规范的相关部分

9.1.12 [[OwnPropertyKeys]]()

当调用O的[[OwnPropertyKeys]]内部方法时,采取以下步骤:

  1. 让密钥成为新的空列表.

  2. 对于每个自己的属性键P,O是一个整数索引,按升序数字索引顺序

    2A.添加P作为键的最后一个元素.