对JavaScript对象数组进行排序是不起作用的
Sorting a JavaScript array of objects does not work
我有以下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]
我需要通过label
对对象进行排序
我试过:
myObject.sort(function(a, b){
return a.label - b.label;
});
这似乎不起作用。
Q:如何按label
对对象进行排序?
您在字符串上预形成减法,这没有意义。相反,使用.localeCompare
myObject.sort(function(a, b){
return a.label.localeCompare(b.label);
});
如果a
小于b
,则此方法返回负数;如果a
大于b
,则返回正数;如果相等,则返回0
。
因为.sort()
方法期望回调中有一个数值,所以这非常有效。
您也可以使用比较运算符,尽管这与.localeCompare()
不同,后者对unicode字符执行更复杂的比较,而不是简单的字节比较。
myObject.sort(function(a, b){
return a.label < b.label ? -1 : a.label > b.label ? 1 : 0;
});
相关文章:
- jquery中DataTables插件中的排序不起作用
- j查询排序不起作用
- 为什么这种 jquery 驱动的表排序不起作用
- jQuery DataTables排序不起作用
- populate中的Mongoose排序不起作用
- 使用J-query数据表,美国日期格式的自定义排序不起作用
- jQuery 表排序器排序不起作用
- 从 AJAX 调用的 PHP 对数组进行排序不起作用
- Jquery UI 可排序不起作用
- 基于CSS类和文本对元素进行排序不起作用
- 使用嵌套json时,ngTable中的排序不起作用
- js文档排序不起作用
- jQueryDataTables-当日期也是一个链接时,排序不起作用
- angularJS:动态标题排序不起作用
- ng表排序不起作用
- 淘汰排序不起作用
- SlickGrid:重新排序后的排序不起作用
- 数据表排序不起作用
- 数组排序不起作用
- jqgrid:动态添加记录后排序不起作用