对对象的JavaScript数组排序不起作用
我有以下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
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'
。