鲜荣彬
Herry

 

<script type="text/javascript">
          var sortDetail = function (propertyArray) {
                    var levelCount = propertyArray.length,
                        checkLetter = /^[A-Z]{1}$/; //检验是否是整数,字符1和数字1是不同的

                    return function (item1, item2) {
                        var level = 0;
                        var sorting = function () {
                            var propertyName = propertyArray[level];
                            level++;

                            var itemCell1 = item1[propertyName],
                                itemCell2 = item2[propertyName];

                            //to check type
                            if (!checkLetter.test(itemCell1)) {
                                itemCell1 = parseInt(itemCell1, 10);
                                itemCell2 = parseInt(itemCell2, 10);
                            }

                            if (itemCell1 < itemCell2) {
                                return -1; //从小到大排序
                            } else if (itemCell1 > itemCell2) {
                                return 1;
                            } else if (itemCell1 === itemCell2) {
                                if (level === levelCount) {
                                    return 0;
                                } else {
                                    return sorting();
                                }
                            }

                        };
                        return sorting();
                    };
                };
                
        var sortInstance=[
            {'name':'manager','deptNo':2,'age':36,'sal':8500},
            {'name':'low developer','deptNo':3,'age':18,'sal':5800},
            {'name':'high developer','deptNo':3,'age':35,'sal':6800},
            {'name':'boss','deptNo':1,'age':56,'sal':9800},
        ];

        var sortProperty = [ 'sal','deptNo', 'age'];

        sortInstance.sort(sortDetail(sortProperty));

        sortInstance.forEach(function (item) {
            console.log(item.name+'---'+item.deptNo+'---'+item.age+'---'+item.sal);
        });
      </script>

 

posted on 2017-07-01 19:05  Herry彬  阅读(1661)  评论(0)    收藏  举报