排序对象数组离开第一个字段

jac*_*ack 0 javascript

我有如下的对象数组:

result =
[
   {"id": 1,"Name": "K"},
   {"id": 2,"Name": "I"},
   {"id": 3,"Name": "A"},
   {"id": 4,"Name": "C"},
   {"id": 5,"Name": "G"},
   {"id": 6,"Name": "B"}
]
Run Code Online (Sandbox Code Playgroud)

我像下面这样按字母顺序对对象数组进行了排序

result.sort(function(a, b) {
      return a.Name.localeCompare(b.Name);
   });
Run Code Online (Sandbox Code Playgroud)

但是我想对我的对象进行排序,使我的第一个对象即K

我希望我的数组看起来像

[
   {"id": 1,"Name": "K"},
   {"id": 3,"Name": "A"},
   {"id": 6,"Name": "B"},
   {"id": 4,"Name": "C"},
   {"id": 5,"Name": "G"},
   {"id": 2,"Name": "I"}
]
Run Code Online (Sandbox Code Playgroud)

如何做到这一点?

San*_*dro 6

您基本上可以提取第一个元素,对数组进行排序,然后使用解构分配再次添加它。

const [first, ...rest] = [
   {"id": 1,"Name": "K"},
   {"id": 2,"Name": "I"},
   {"id": 3,"Name": "A"},
   {"id": 4,"Name": "C"},
   {"id": 5,"Name": "G"},
   {"id": 6,"Name": "B"}
];

const result = [first, ...rest.sort((a, b) => a.Name.localeCompare(b.Name))];
console.log(result);
Run Code Online (Sandbox Code Playgroud)