对对象的JavaScript数组排序不起作用

对对象的JavaScript数组排序不起作用,javascript,Javascript,我有以下JavaScript对象: console.log(myObject)的输出是: [Object, Object] 0: Object data: Array[19] label: "Orange" __proto__: Object 1: Object data: Array[19] label: "Black" __proto__: Object length: 2 __proto__: Array[0] 我需要按标签对对象进行排序 我试过: myObject.sort(funct

我有以下JavaScript对象:
console.log(myObject)
的输出是:

[Object, Object]
0: Object
data: Array[19]
label: "Orange"
__proto__: Object
1: Object
data: Array[19]
label: "Black"
__proto__: Object
length: 2
__proto__: Array[0]
我需要按标签对对象进行排序

我试过:

myObject.sort(function(a, b){ 
    return a.label - b.label;
});
这似乎不起作用


Q:如何按
标签对对象排序?

您在字符串上执行减法,这没有意义。相反,使用

如果
a
小于
b
,则此方法返回负数;如果
a
大于
b
则返回正数;如果相等,则返回
0

因为
.sort()
方法需要回调函数提供一个数值,所以它工作得非常好

您还可以使用比较运算符,尽管这与执行更复杂的unicode字符比较而不是简单的字节比较的
.localeCompare()
不同

myObject.sort(function(a, b){ 
    return a.label < b.label ? -1 : a.label > b.label ? 1 : 0;
});
myObject.sort(函数(a,b){
返回a.labelb.label-1:0;
});

您在字符串上执行减法,这没有意义。相反,使用

如果
a
小于
b
,则此方法返回负数;如果
a
大于
b
则返回正数;如果相等,则返回
0

因为
.sort()
方法需要回调函数提供一个数值,所以它工作得非常好

您还可以使用比较运算符,尽管这与执行更复杂的unicode字符比较而不是简单的字节比较的
.localeCompare()
不同

myObject.sort(function(a, b){ 
    return a.label < b.label ? -1 : a.label > b.label ? 1 : 0;
});
myObject.sort(函数(a,b){
返回a.labelb.label-1:0;
});

在控制台中尝试
'Orange'-'Black'
。在控制台中尝试
'Orange'-'Black'