Rumah > Soal Jawab > teks badan
P粉9564410542023-08-22 11:15:39
Ini ialah versi yang lebih fleksibel yang membolehkan anda mencipta fungsi isihan boleh guna semula dan mengisih mengikut mana-mana medan.
const sort_by = (field, reverse, primer) => { const key = primer ? function(x) { return primer(x[field]) } : function(x) { return x[field] }; reverse = !reverse ? 1 : -1; return function(a, b) { return a = key(a), b = key(b), reverse * ((a > b) - (b > a)); } } //现在您可以按任何字段排序... const homes=[{h_id:"3",city:"Dallas",state:"TX",zip:"75201",price:"162500"},{h_id:"4",city:"Bevery Hills",state:"CA",zip:"90210",price:"319250"},{h_id:"5",city:"New York",state:"NY",zip:"00010",price:"962500"}]; // 按价格从高到低排序 console.log(homes.sort(sort_by('price', true, parseInt))); // 按城市排序,不区分大小写,按A-Z排序 console.log(homes.sort(sort_by('city', false, (a) => a.toUpperCase() )));
P粉4935341052023-08-22 11:08:15
Isih rumah mengikut harga dalam tertib menaik:
homes.sort(function(a, b) {
return parseFloat(a.price) - parseFloat(b.price);
});
Atau selepas versi ES6:
homes.sort((a, b) => parseFloat(a.price) - parseFloat(b.price));
Sesetengah dokumentasi boleh didapati di sini.
Untuk menyusun mengikut tertib menurun anda boleh menggunakan
homes.sort((a, b) => parseFloat(b.price) - parseFloat(a.price));