【发布时间】:2018-04-01 15:16:47
【问题描述】:
我在 js 中有一个特定的对象数组,它们代表表的列。 我的对象是:
var columns = {
"image": {
"show": false,
"orderable": true,
"value": 0,
"displayOrder":2
},
"name": {
"show": true,
"orderable": true,
"value": 1,
"displayOrder":0
},
"company": {
"show": false,
"orderable": false,
"value": 2,
"displayOrder":1
}
}
我必须通过“displayOrder”对对象进行排序,但使用类似
的函数columns.sort(function(a, b) {
return parseFloat(a.displayOrder) - parseFloat(b.displayOrder);
});
显然它返回一个错误。 我该怎么做?
【问题讨论】:
-
你有一个对象,对象的属性不能排序。如果你想这样做,
columns需要是一个数组。 -
为什么你在整数上做
parseFloat?那么最好使用parseInt。 -
无法对对象进行排序,但您可以创建一个对象数组,如下所示stackoverflow.com/questions/1069666/…
-
@kevinSpaceyIsKeyserSöze 只是复制粘贴问题。
-
我不知道那是什么意思。 JS 没有关联数组的等价物。有对象(即上面代码中的内容)和数组。对象的属性是瞬态的,不能排序。
标签: javascript jquery sorting datatables associative-array