微信小程式:對陣列進行排序
阿新 • • 發佈:2022-04-22
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) } ) } )