Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过Lodash将对象转换为排序数组_Javascript_Arrays_Sorting_Object_Lodash - Fatal编程技术网

Javascript 如何通过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即可。解决方案可以稍微清理一下,但其思想是通过对象循

如何通过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即可。解决方案可以稍微清理一下,但其思想是通过对象循环,并将所需的格式推送到一个新数组中。为了方便起见,我也会把排序放在那里,但请随意根据您的喜好重新考虑

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,很乐意帮忙!:)