我如何排序数组中的键

时间:2019-03-21 12:23:59

标签: javascript arrays sorting

我想按升序对Stage键进行排序。 我要这个命令:{'stage_1','stage_2','stage_3','stage_11','stage_22'}

let data = {
    "stage_1": "PADIYANALLUR",
    "stage_11": "Weels India Rd.Jn.",
    "stage_2": "GUINDY TVK I.E",
    "stage_22": "RED HILLS",
    "stage_3": null,
}

1 个答案:

答案 0 :(得分:0)

JavaScript中的对象不保证键顺序。您必须使用数组。

您可以使用Object.keys()sort()生成键的有序数组。

要根据密钥中的数字后缀进行数字排序,请使用+key.match(/\d+/)提取数字并将其转换为数字:

const data = {
  "stage_1": "PADIYANALLUR",
  "stage_11": "Weels India Rd.Jn.",
  "stage_2": "GUINDY TVK I.E",
  "stage_22": "RED HILLS",
  "stage_3": null,
};

const result = Object.keys(data).sort((a, b) => +a.match(/\d+/) - +b.match(/\d+/));

console.log(result)