Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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实现这种排序?_Javascript_Arrays_Sorting - Fatal编程技术网

如何使用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;}
请告诉我我的帖子在哪些方面没有遵守本论坛设定的高标准,以便我下次继续学习和改进。谢谢:)