【发布时间】:2014-06-23 08:35:36
【问题描述】:
所以我知道这里有很多帖子描述了如何对多维对象进行排序,但我一直找不到适合我需要的帖子。
所有这些解决方案都基于这样的对象:
[{id: 1, value: 'aaa'},{id: 40, value: 'bbbb'}]
我的对象如下所示:
buttons: {
confirm: {
class: 'btn btn-primary',
value: 'Opslaan',
order: 1
},
cancel: {
class: 'btn btn-default',
value: 'Annuleer',
order: 10
}
delete: {
class: 'btn btn-danger',
value: 'Verwijder',
order: 2
}
},
当然,我想对此进行排序,结果是:确认、删除、取消。 我试过这个(我预计不会工作):
this.options.buttons.sort ( function ( a, b ) {
return a.order - b.order;
});
但这给了我一个Uncaught TypeError: undefined is not a function
非常感谢任何帮助!
【问题讨论】:
-
就这么简单:对象没有sort(),对象不保证顺序。
-
有时候这个网站让我觉得自己像个白痴……哈哈。但这是否意味着没有办法达到我的结果?除了改成数组?
-
@DiederikvandenB 从技术上讲,您可能有一些方法可以对对象进行排序(Object.keys,然后您可以对该数组进行排序,然后您可以重建您的对象)。但是,对象未根据 ECMA 规范进行排序(请参阅:ecma-international.org/publications/standards/Ecma-262.htm),因此不能保证对象会按照您的喜好保持排序。最好将按钮属性转换为数组。
标签: javascript sorting javascript-objects