Javascript 对对象进行排序
我目前有一个objects对象,我希望对其中一个objects对象值上的三个objects对象进行排序 例如,如果我有Javascript 对对象进行排序,javascript,sorting,object,Javascript,Sorting,Object,我目前有一个objects对象,我希望对其中一个objects对象值上的三个objects对象进行排序 例如,如果我有 { A : { 1: 5, 2: 10, 3: 7}, B : { 1: Alpha, 2: Beta, 3: Charlie}, C : { 1: Z, 2: Y, 3: X} } 我想按值(按desc顺序)对A中的对象进行排序,同时保持键的完整性。 对B和C(按顺序)进行同样的排序 生成的数组将是[10,7,5],[Beta,Charlie,Alpha],
{ A : { 1: 5, 2: 10, 3: 7},
B : { 1: Alpha, 2: Beta, 3: Charlie},
C : { 1: Z, 2: Y, 3: X}
}
我想按值(按desc顺序)对A
中的对象进行排序,同时保持键的完整性。
对B
和C
(按顺序)进行同样的排序
生成的数组将是[10,7,5]
,[Beta,Charlie,Alpha]
,和[Y,X,Z]
,使用对象.values()
,对象.entries()
,和.sort()
var obj=
{A:{1:5,2:10,3:7},
B:{1:“阿尔法”,2:“贝塔”,3:“查理”},
C:{1:Z',2:Y',3:X}
};
obj=对象值(obj);
var sorted=Object.entries(obj[0]).sort((a,b)=>b[1]-a[1]);
var输出=[];
已排序。forEach((v,i)=>{
output.push(对象映射(e=>e[v[0]]);
})
控制台日志(输出);
//每个数组的第一个都是新数组
var newarr=output.map(a=>a[0]);
控制台日志(newarr)
A中的所有值都是唯一的吗?这里回答了一个问题:将A
对象转换为类似[[1,5],[2,10],[3,7]
的数组。按每个子数组的第二个元素对其排序。然后按照排序数组中每个子数组的第一个元素的顺序创建每个原始属性的元素的结果数组。@Barmar数组中的值是唯一的。谢谢你的方法,我会调查的。谢谢。下一步是提取每个数组的第一个元素并将其存储到新数组中。这是为每个第n个元素完成的。我仍然遇到一个错误,其中定义的obj不是数组,而是对象。因此,无法运行.sort方法。