Javascript 是否可以为ES6映射对象的值对象的属性排序?
我有一张对象值的地图。我想根据对象值的属性对它们进行排序 以下是示例地图:Javascript 是否可以为ES6映射对象的值对象的属性排序?,javascript,sorting,dictionary,ecmascript-6,Javascript,Sorting,Dictionary,Ecmascript 6,我有一张对象值的地图。我想根据对象值的属性对它们进行排序 以下是示例地图: var map = new Map(); map.set("8014",{ "Access to support": null, "Capacity": 1, "Comfort Level": null, "Control Level": 1, "Growth Mindset": 1.54054054
var map = new Map();
map.set("8014",{
"Access to support": null,
"Capacity": 1,
"Comfort Level": null,
"Control Level": 1,
"Growth Mindset": 1.5405405405405403,
"Horizon": null,
"Motivation": null,
"Open-Mindedness": null,
"Proactivity": null,
"Resiliency": null,
"Segment": "Level value 1"});
map.set("8015",{
"Access to support": null,
"Capacity": 1,
"Comfort Level": null,
"Control Level": 1,
"Growth Mindset": 1.5405405405405403,
"Horizon": null,
"Motivation": null,
"Open-Mindedness": null,
"Proactivity": null,
"Resiliency": null,
"Segment": "Level value 2 or 5"});
map.set("8016",{
"Access to support": null,
"Capacity": 1,
"Comfort Level": null,
"Control Level": 1,
"Growth Mindset": 1.5405405405405403,
"Horizon": null,
"Motivation": null,
"Open-Mindedness": null,
"Proactivity": null,
"Resiliency": null,
"Segment": "Level value 3 or 5"});
我想根据value对象的段属性对其进行排序。
任何帮助都将不胜感激 您需要在使用自定义回调对项目进行排序后重新生成,因为
映射
对象保存键值对并记住键的原始插入顺序
const
customSort=(a,b)=>a-b,//使用排序函数
sortBy=fn=>(a,b)=>fn(a[0],b[0]);
变量映射=新映射([['a',2],'c',1],'d',5]],
排序=新映射([…映射].sort(sortBy(customSort));
log([…map]);
log([…排序])代码>
。作为控制台包装{max height:100%!important;top:0;}
您可以使用以下命令基于段
创建映射条目。然后根据已排序的条目创建一个新映射
var-map=newmap();map.set(“8014”,{“获得支持”:空,能力:1,“舒适水平”:空,“控制水平”:1,“成长心态”:1.5403,视野:空,动机:空,“开放性”:空,主动性:空,弹性:空,分段:“水平值1”});map.set(“8015”,{“获得支持”:空,能力:1,“舒适水平”:空,“控制水平”:1,“成长心态”:1.5403,视野:空,动机:空,“开放性”:空,主动性:空,弹性:空,段:“水平值2或5”});map.set(“8016”,“获得支持”:空,能力:1,“舒适水平”:空,“控制水平”:1,“成长心态”:1.5403,视野:空,动机:空,“开放性”:空,主动性:空,弹性:空,分段:“水平值3或5”});
康斯特分类地图=
新地图(
数组.from(映射)
.sort((a,b)=>a[1].Segment.localeCompare(b[1].Segment))
);
console.log([…sortedMap.entries()])
请创建一个包含有效输入、预期输出和清晰问题陈述的数组。它是数组还是数组?为什么要排序?如果那是一张地图,那看起来是无效的。输出和输出类型是什么?映射是有序的(具有可预测的迭代),但不是可排序的。如果答案解决了您的问题,请单击它旁边的灰色复选标记。(我之所以提到它,是因为到目前为止您还没有接受任何答案)fn(a[1],b[1])
似乎比调用getValue
函数更简单:-)不需要获取条目,因为map已经返回了条目。@NinaScholz,我不知道。谢谢