[英]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.