Javascript Angular.js:如何使用orderby对对象进行排序

Javascript Angular.js:如何使用orderby对对象进行排序,javascript,angularjs,angularjs-orderby,Javascript,Angularjs,Angularjs Orderby,这是我的角度代码: <li ng-repeat="(key, value) in list | orderBy:customOrderFn"> <span>{{key}}: {{value.age}}</span> </li> app.controller('ListController', function ($scope) { $scope.list = {

这是我的角度代码:

    <li ng-repeat="(key, value) in list | orderBy:customOrderFn">
        <span>{{key}}: {{value.age}}</span>
    </li>

        app.controller('ListController', function ($scope) {
            $scope.list = {
                'name1': {
                    age: 22
                },
                'name2': {
                    age: 21
                },
                'name3': {
                    age: 23
                }
            }

            $scope.customOrderFn = function (person) {
                console.log(person);
                return person.age;
            }
  • {{key}}:{{value.age}
  • app.controller('ListController',函数($scope){ $scope.list={ “名称1”:{ 年龄:22 }, “名称2”:{ 年龄:21 }, “名称3”:{ 年龄:23 } } $scope.customOrderFn=函数(个人){ 控制台日志(个人); 返回人。年龄; }
    我想按每个人的年龄进行排序,所以我使用了一个自定义的排序函数。但这似乎不起作用

    那么,我的代码出了什么问题?如何修复它?

    来自:

    通过表达式谓词对指定数组进行排序。该数组已排序 按字母顺序表示字符串,按数字顺序表示数字。注意:如果 请注意,数字未按预期排序,请确保它们已按预期排序 实际上被保存为数字而不是字符串

    看看这个答案:


    这可能会有所帮助。

    javascript对象没有顺序…请使用数组。使用唯一的属性名对于处理此数据的大多数操作来说都是非常麻烦的