我有如下的对象数组:
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)
如何做到这一点?
您基本上可以提取第一个元素,对数组进行排序,然后使用解构分配再次添加它。
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)
| 归档时间: |
|
| 查看次数: |
74 次 |
| 最近记录: |