Javascript 如何通过Lodash将对象转换为排序数组
如何通过lodash将Javascript 如何通过Lodash将对象转换为排序数组,javascript,arrays,sorting,object,lodash,Javascript,Arrays,Sorting,Object,Lodash,如何通过lodash将{2:'b',3:'c',1:'a'}转换为[{1:'a'},{2:'b'},{3:'c'}]?使用对象非常简单。键+数组。map,您确实不需要lodash: const obj={2:'b',3:'c',1:'a'}; const arr=Object.keys(obj.map)(key=>({[key]:obj[key]})) console.log(arr)为什么要使用lodash?只需使用常规Javascript即可。解决方案可以稍微清理一下,但其思想是通过对象循
{2:'b',3:'c',1:'a'}
转换为[{1:'a'},{2:'b'},{3:'c'}]
?使用对象非常简单。键+数组。map
,您确实不需要lodash:
const obj={2:'b',3:'c',1:'a'};
const arr=Object.keys(obj.map)(key=>({[key]:obj[key]}))
console.log(arr)
为什么要使用lodash?只需使用常规Javascript即可。解决方案可以稍微清理一下,但其思想是通过对象循环,并将所需的格式推送到一个新数组中。为了方便起见,我也会把排序放在那里,但请随意根据您的喜好重新考虑
const obj = {2:'b',3:'c',1:'a'}
let newArr = [];
for (var key in obj) {
newArr.push({[key]: obj[key]})
newArr.sort((a, b) => a[key] > b[key])
}
console.log(newArr)
Lodash并不是实现您想要的功能所必需的,但我仍然在添加它,并添加一个排序函数。我还包括了本机JavaScript方式
constobj={b:3,c:2,a:1};
const sortByKeys=对象=>{
常量键=对象。键(对象)
const sortedKeys=uu.sortBy(键)
return.map(sortedKeys,key=>({[key]:object[key]}))
}
//洛达斯的方式,并分类
控制台日志(sortByKeys(obj))
//简单的方法
常量结果=对象键(obj)
.map(key=>({[key]:obj[key]}))
console.log(结果)
使用即将推出的Javascript,您可以使用单个对象映射新数组
var data={2:'b',3:'c',1:'a'},
结果=对象
.条目(数据)
.sort((a,b)=>a[0]-b[0])
.map(([k,v])=>({[k]:v}));
控制台日志(结果)代码>
作为控制台包装{max height:100%!important;top:0;}
我知道对象键不被假定为已排序(),但我不知道object.key通常已排序。我在哪里可以找到更多关于这方面的信息?更新了我的答案,并链接到规范和kevlai22的相关部分。请注意,这只适用于数字指示器非常感谢@RobM.没问题@kevlai22,很乐意帮忙!:)