sort() 方法用于对数组的元素进行排序。

排序顺序可以是字母或数字,并按升序或降序。默认排序顺序为按字母升序。

注意:当数字是按字母顺序排列时"40"将排在"5"前面。

语法:

array.sort(sortfunction)

参数:sortfunction,可选。规定排序顺序。必须是函数。

一、对字母进行排序

默认排序顺序为按字母升序。

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.sort();
fruits.reverse();

结果:

Orange,Mango,Banana,Apple

二、对数字进行排序

使用数字排序,你必须通过一个函数作为参数来调用。函数指定数字是按照升序还是降序排列。

1)、升序

var points = [40,100,1,5,25,10];
points.sort(function(a,b){return a-b});

结果:

1,5,10,25,40,100

2)、降序

var points = [40,100,1,5,25,10];
points.sort(function(a,b){return b-a});

结果:

100,40,25,10,5,1

三、根据数组中的对象的某个属性进行排序

根据对象中的某个字段进行升序或降序

1)、升序

第一种方式:

方法:

compare: function (property) {
        return function (a, b) {
            var value1 = a[property];
            var value2 = b[property];
            return value1 - value2;
        }
    },

调用方法:

result.data.forEach(
                    (item, i) => {
                        item.itemList.sort(that.compare("itemCode"))
                        item.itemList.forEach(
                            (item1, i1) => {
                                datasetList.push(item1.itemName)
                            }
                        )
                    }
                )

第二种方式:直接将函数写到sort函数的参数中

result.data.forEach(
                    (item, i) => {
                        item.itemList.sort(function(a,b){return a["itemCode"]-b["itemCode"]})
                        item.itemList.forEach(
                            (item1, i1) => {
                                datasetList.push(item1.itemName)
                            }
                        )
                    }
                )

2)、降序

方法:

compare: function (property) {
        return function (a, b) {
            var value1 = a[property];
            var value2 = b[property];
            return value2 - value1;
        }
    },

调用方法:

result.data.forEach(
                    (item, i) => {
                        item.itemList.sort(that.compare("itemCode"))
                        item.itemList.forEach(
                            (item1, i1) => {
                                datasetList.push(item1.itemName)
                            }
                        )
                    }
                )

第二种方式:直接将函数写到sort函数的参数中:

result.data.forEach(
                    (item, i) => {
                        item.itemList.sort(function(a,b){return b["itemCode"]-a["itemCode"]})
                        item.itemList.forEach(
                            (item1, i1) => {
                                datasetList.push(item1.itemName)
                            }
                        )
                    }
                )

 

posted on 2022-04-22 11:26  周文豪  阅读(3854)  评论(0编辑  收藏  举报