Javascript 对离开第一个字段的对象数组进行排序

Javascript 对离开第一个字段的对象数组进行排序,javascript,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"} ] 我按字母顺序对对象数组进行排序,如下所示 result.sort(function(a, b) { return a.Nam

我有一组对象,如下所示:

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"}
]
我按字母顺序对对象数组进行排序,如下所示

result.sort(function(a, b) {
      return a.Name.localeCompare(b.Name);
   });
但我想对我的对象进行排序,留下我的第一个对象,即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"}
]
如何实现这一点?

let first=results.shift()
results.sort()
结果:取消移位(第一个)

基本上提取第一个元素,对数组进行排序,然后使用

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));

控制台日志(结果)您可以使用
切片()

你可以这样使用和搭配

移位:

删除数组的第一项并返回它

取消移位:

将项目放置在数组的开头。


const 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"}
]

const firstElement = result.shift();
result.sort((a, b) => a.Name.localeCompare(b.Name));
result.unshift(firstElement);
您可以这样使用和:

结果=
[
{“id”:1,“Name”:“K”},
{“id”:2,“Name”:“I”},
{“id”:3,“Name”:“A”},
{“id”:4,“Name”:“C”},
{“id”:5,“Name”:“G”},
{“id”:6,“Name”:“B”}
]
结果=[
结果:切片(0,1),
…result.slice(1).sort((a,b)=>a.Name.localeCompare(b.Name))
]

控制台日志(结果)如果值是第一项,则可以存储第一项并检查参数。首先对该项进行排序,然后对所有其他元素进行排序

这种方法保持给定数组的相同对象引用

var result=[{id:1,名称:“K”},{id:2,名称:“I”},{id:3,名称:“A”},{id:4,名称:“C”},{id:5,名称:“G”},{id:6,名称:“B”},
第一个=结果[0];
结果.排序(函数(a,b){
return(b==first)-(a==first)| | a.Name.localeCompare(b.Name);
});
控制台日志(结果)

.as控制台包装{max height:100%!important;top:0;}
排序前,请使用数组删除第一个对象。拼接(0,1);虽然我自己贴了一个答案,但这个看起来比我的更优雅+1.
    var 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"}
        ]

    var firstObj=result.shift();

    result.sort(function(a, b) {
        return a.Name.localeCompare(b.Name);
    });
    result.unshift(firstObj);
let firstItem = result.shift();
result.sort(function(a, b) {
  return a.Name.localeCompare(b.Name);
});
result.unshift(firstItem)
const 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"}
]

const firstElement = result.shift();
result.sort((a, b) => a.Name.localeCompare(b.Name));
result.unshift(firstElement);