本文為原創(chuàng)文章,如需轉(zhuǎn)載請注明出處,謝謝!
JS
你有沒有遇到過這樣的數(shù)據(jù)排序呢?有時候需要按照價格排序,有時候需要按照庫存排序。下面我就分享一下我的做法。
function listSortBy(myArray,field,order){
//冒泡排序
if(myArray.length>0){
for(var i=0; i<myArray.length; i++){
//在這要注意myArray.length-i-1,意思是第一次從數(shù)組第一個值開始,第二次從第二個值開始.....
for(var j=0; j<myArray.length-i-1; j++){
var str_i = myArray[j][field];
var str_j = myArray[j+1][field];
//判斷值是否大于后面值,如果大于進(jìn)行換位處理
if(order=='asc'){
if(parseFloat(str_i) > parseFloat(str_j)){
var tmp = myArray[j];
myArray[j] = myArray[j+1];
myArray[j+1] = tmp;
}
}else if(order=='desc'){
if(parseFloat(str_i) < parseFloat(str_j)){
var tmp = myArray[j];
myArray[j] = myArray[j+1];
myArray[j+1] = tmp;
}
}
}
}
}
return myArray;
}
var Arr = new Array();
var Brr = new Array();
Brr.price='10';
Brr.count='111';
Arr.push(Brr);
var Brr = new Array();
Brr.price='11';
Brr.count='222';
Arr.push(Brr);
var Brr = new Array();
Brr.price='9';
Brr.count='333';
Arr.push(Brr);
console.log(listSortBy(Arr,'price',"asc"));
0:[price: "10", count: "111"]
1:[price: "11", count: "222"]
2:[price: "9", count: "333"]
console.log(listSortBy(Arr,'count',"asc"));
0:[price: "10", count: "111"]
1:[price: "11", count: "222"]
2:[price: "9", count: "333"]
希望可以幫到需要的你_
時間是生命的原料,我們有多大的成就取決于怎樣利用我們的時間。
只愿我的分享能幫到你,不做知識學(xué)習(xí)的焦慮者,不做美好生活的踐踏者。