如何使用JavaScript实现这种排序?
因此,我有一个如下所示的“结构”&我需要按照下面“键值”的顺序对其进行排序,以获得下面的“输出”。我怎样才能做到这一点 结构:如何使用JavaScript实现这种排序?,javascript,arrays,sorting,Javascript,Arrays,Sorting,因此,我有一个如下所示的“结构”&我需要按照下面“键值”的顺序对其进行排序,以获得下面的“输出”。我怎样才能做到这一点 结构: [ { rs: { 1 MONTHS: "100", 1 YEAR: "200", 3 MONTHS: "30", 6 MONTHS: "400"} },
[
{
rs: {
1 MONTHS: "100",
1 YEAR: "200",
3 MONTHS: "30",
6 MONTHS: "400"}
},
{
rs: {
1 MONTHS: "500",
1 YEAR: "40",
3 MONTHS: "700",
6 MONTHS: "800"}
},
{
rs: {
1 MONTHS: "199",
1 YEAR: "1989",
3 MONTHS: "597",
6 MONTHS: "20"}
},
{
rs: {
1 MONTHS: "356",
1 YEAR: "10",
3 MONTHS: "877",
6 MONTHS: "1145"}
}
]
["10", "20", "30", "40"]
关键值:
[
{
rs: {
1 MONTHS: "100",
1 YEAR: "200",
3 MONTHS: "30",
6 MONTHS: "400"}
},
{
rs: {
1 MONTHS: "500",
1 YEAR: "40",
3 MONTHS: "700",
6 MONTHS: "800"}
},
{
rs: {
1 MONTHS: "199",
1 YEAR: "1989",
3 MONTHS: "597",
6 MONTHS: "20"}
},
{
rs: {
1 MONTHS: "356",
1 YEAR: "10",
3 MONTHS: "877",
6 MONTHS: "1145"}
}
]
["10", "20", "30", "40"]
排序后的输出
[
{
rs: {
1 MONTHS: "356",
1 YEAR: "10",
3 MONTHS: "877",
6 MONTHS: "1145"}
},
{
rs: {
1 MONTHS: "199",
1 YEAR: "1989",
3 MONTHS: "597",
6 MONTHS: "20"}
},
{
rs: {
1 MONTHS: "100",
1 YEAR: "200",
3 MONTHS: "30",
6 MONTHS: "400"}
},
{
rs: {
1 MONTHS: "500",
1 YEAR: "40",
3 MONTHS: "700",
6 MONTHS: "800"}
}
]
我想过滤从API端点接收的数据结构格式,以便根据值对其进行排序,使其与生成的键数组的顺序相同。您可以按所需顺序获取对象,并获取与排序匹配的对象的值
const
getValue=o=>Object.values(o).find(v=>values.includes(v)),
数据=[{rs:{“1个月”:“100”,“1年”:“200”,“3个月”:“30”,“6个月”:“400”},{rs:{“1个月”:“500”,“1年”:“40”,“3个月”:“700”,“6个月”:“800”},{rs:{“1个月”:“199”,“1年”:“1989”,“3个月”:“597”,“6个月”:“20”},{rs:{“1个月”:“356”,“1年”:“10”,“3个月”:“877”,“6个月”:“1145”}],
值=[“10”、“20”、“30”、“40”],
order=Object.fromEntries(values.map((v,i)=>[v,i+1]);
排序({rs:a},{rs:b})=>order[getValue(a)]-order[getValue(b)];
控制台日志(数据)代码>
。作为控制台包装{max height:100%!important;top:0;}
请告诉我我的帖子在哪些方面没有遵守本论坛设定的高标准,以便我下次继续学习和改进。谢谢:)