Javascript 对展平对象进行排序

Javascript 对展平对象进行排序,javascript,sorting,object,Javascript,Sorting,Object,我现在有一个对象,我想把它展平,下面的代码做了如下操作 编辑: 刚刚更新了结构以包含优先级 var输入={ “a11/a22/动画”:{ “标题”:“此处标题”, “优先权”:2 }, “a11/a22/颜色”:{ “标题”:“此处标题”, “优先权”:1 }, “a11/a22/fonts”:{ “标题”:“此处标题”, “优先权”:3 }, “a11/a22/可见性”:{ “标题”:“此处标题”, “优先权”:4 }, “a11/b22/标识”:{ “标题”:“此处标题”, “优先权”:1

我现在有一个对象,我想把它展平,下面的代码做了如下操作

编辑:

刚刚更新了结构以包含优先级

var输入={
“a11/a22/动画”:{
“标题”:“此处标题”,
“优先权”:2
},
“a11/a22/颜色”:{
“标题”:“此处标题”,
“优先权”:1
},
“a11/a22/fonts”:{
“标题”:“此处标题”,
“优先权”:3
},
“a11/a22/可见性”:{
“标题”:“此处标题”,
“优先权”:4
},
“a11/b22/标识”:{
“标题”:“此处标题”,
“优先权”:1
},
“a11/c22/define”:{
“标题”:“此处标题”,
“优先权”:2
},
“a11/c22/订购”:{
“标题”:“此处标题”,
“优先权”:3
},
“a11/c22/无序”:{
“标题”:“此处标题”,
“优先权”:1
},
“a11/d22/英尺”:{
“标题”:“此处标题”,
“优先权”:2
},
“a11/d22/头”:{
“标题”:“此处标题”,
“优先权”:1
},
“a11/e22/blockquote”:{
“标题”:“此处标题”,
“优先权”:2
},
“a11/e22/标题”:{
“标题”:“此处标题”,
“优先权”:1
},
“a11/e22/hr”:{
“标题”:“此处标题”,
“优先权”:4
},
“a11/e22/内联元件”:{
“标题”:“此处标题”,
“优先权”:3
},
“a11/e22/段”:{
“标题”:“此处标题”,
“优先权”:6
},
“a11/e22/预格式化”:{
“标题”:“此处标题”,
“优先权”:5
},
“a11/e22/时间”:{
“标题”:“此处标题”,
“优先权”:7
},
“b11/f22/菜单”:{
“标题”:“此处标题”,
“优先权”:1
},
“b11/g22/产品项”:{
“标题”:“此处标题”,
“优先权”:1
},
“b11/h22/搜索”:{
“标题”:“此处标题”,
“优先权”:1
},
“b11/i22/子菜单”:{
“标题”:“此处标题”,
“优先权”:1
},
“c11/j22/页脚”:{
“标题”:“此处标题”,
“优先权”:1
},
“c11/j22/标题”:{
“标题”:“此处标题”,
“优先权”:2
},
“c11/k22/收割台”:{
“标题”:“此处标题”,
“优先权”:1
}
},
输出={};
Object.entries(input.forEach)(
([k,v])=>
(k.split(“/”).reduce((o,k)=>(o[k]=o[k]| |{}),输出)
);
控制台日志(输出);
控制台日志(输出)

.as console wrapper{max height:100%!important;top:0;}
您可以在生成新对象之前对条目进行排序,方法是采用
优先级
并对条目进行升序排序

var-input={“a11/a22/animations”:{title:“title here”,priority:2},“a11/a22/colors”:{title:“title here”,priority:1},“a11/a22/font”:{title:“title here”,priority:3},“a11/a22/visibility”:{title:“title here”,priority:4},“a11/b22/logo”:{title:“title here”,priority:1},“a11/c22/define”:{title:“title here,priority:2},“a11/c22/ordered”:{title:“title here”,priority:3},“a11/c22/unordered”:{title:“title here”,priority:1},“a11/d22/head”:{title:“title here”,priority:1},“a11/e22/blockquote”:{title:“title:“title here”,priority:2},“a11/e22/headers:{title:“title here”,priority:1},“a11/e22/hr”:{title:“title here”,priority:4},“a11/e22/inline元素”:{title:“title here”,priority:3},“a11/e22/段落”:{title:“title here”,priority:6},“a11/e22/预格式化”:{title:“title:“title here”,priority:5},“a11/e22/时间”:{title:“title here”,priority:7},“b11/f22/菜单”:{title:“title here,priority:1},“b11/g22/product item”:{title:“title here”,priority:1},“b11/h22/search”:{title:“title here”,priority:1},“b11/i22/sub menu”:{title:“title here”,priority:1},“c11/j22/title”:{title:“title:“title here”,priority:2},“c11/k22/header”:{title:“title:“title here”,优先级:1}},
输出={};
对象
.条目(输入)
.sort({1:{priority:a},{1:{priority:b}})=>a-b)
.forEach([k,v])=>(k.split(“/”).reduce((o,k)=>(o[k]=o[k]|{}),输出)。value=v)
);
控制台日志(输出)

作为控制台包装{max height:100%!important;top:0;}
你在说什么?你所说的“对象”排序是什么意思?您只能对数组进行排序,不能对单个对象进行排序。请添加您想要排序的内容和排序后的结果。@NinaScholz-我刚刚更新了上面的结构。它不应该是
.sort((a,b)=>a.priority-b.priority)
?@Ebuall但它应该放在哪里?因为它先变平。