1. 程式人生 > 其它 >微信小程式:對陣列進行排序

微信小程式:對陣列進行排序

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)
                            }
                        )
                    }
                )