繁体   English   中英

按键名对对象数组进行排序

[英]Sort array of objects by key name

我需要按确切的顺序对键进行排序,例如我有下一个数组:

const arr = [
             {
               active: true,
               code: "1234",
               indentifier: "OPC-999",
               name: "Example",
               start: "02-12-1997",
             }
             {
               active: false,
               code: "4567",
               indentifier: "OPC-111",
               name: "Example",
               start: "03-02-2010",
             }
]

每个 object 的确切顺序应该是:名称、标识符、代码、开始、活动。

我不需要按值排序,而是按键名排序。

最好的方法是什么?

您可以按您想要的顺序使用 object 键创建一个keys数组。 然后你可以map数组中的每个 object ,生成一个新的 object ,其属性按照键数组中定义的顺序创建:

 const arr = [ { active: true, code: "1234", indentifier: "OPC-999", name: "Example", start: "02-12-1997", }, { active: false, code: "4567", indentifier: "OPC-111", name: "Example", start: "03-02-2010", } ] const keys = ['name', 'indentifier', 'code', 'start', 'active']; const result = arr.map(o => Object.fromEntries(keys.map(k => [k, o[k]]))); console.log(result);

for (i = 0; i < arr.length; i++) {
  arr[i] = {
    name: arr[i].name,
    indentifier: arr[i].indentifier,
    code: arr[i].code,
    start: arr[i].start,
    active: arr[i].active,
  }
}

完成此操作后,您的arr将按照您的需要进行排序:

[
  {
    "name": "Example",
    "indentifier": "OPC-999",
    "code": "1234",
    "start": "02-12-1997",
    "active": true
  },
  {
    "name": "Example",
    "indentifier": "OPC-111",
    "code": "4567",
    "start": "03-02-2010",
    "active": false
  }
]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM