首页 > 解决方案 > 根据 JavaScript 中的键列表对对象键进行排序

问题描述

我有一个要显示的字段顺序列表

field_order = ["name", "age", "birthday"]

我有一个这样的对象列表

_data_set = {
    "age": 23,
    "birthday": "2000-12-12"
    "name": "A"
}

我需要根据field_order.

预期结果:

_data_set = {
    "name": "A",
    "age": 23,
    "birthday": "2000-12-12"
}

标签: javascript

解决方案


自 ES2015 以来,JavaScript 中的键顺序是按时间顺序排列的,所以我们可以这样排序:

有一篇很好的文章:property-traversal-order-es6

field_order = ["name", "age", "birthday"]
_data_set = {
    "age": 23,
    "birthday": "2000-12-12",
    "name": "A"
};

let result = field_order.reduce( (obj, v) => {
   obj[v] = _data_set[v];
   return obj;
}, {});

console.log(result);


推荐阅读