欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

js中如何對(duì)json數(shù)組進(jìn)行排序

 更新時(shí)間:2023年04月17日 10:11:14   作者:spring-java  
這篇文章主要介紹了js中如何對(duì)json數(shù)組進(jìn)行排序的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

js對(duì)json數(shù)組進(jìn)行排序

廢話不多說,直接上代碼

// 升序排列
function up(a, b) {
? ? ?return a.val-b.val
?},
?// 降序排列
function down(a, b) {
? ? return b.val-a.val
},

// sort 會(huì)直接對(duì)原數(shù)據(jù)排序
testJson.sort(up)

例如:

let test=[{"val":100},{"val":70},{"val":50},{"val":20},{"val":10}]
test=test.sort(up)

js根據(jù)json數(shù)組多個(gè)字段排序

let newArray = [
? ? ? {product: "1", matno: "420200011480006",salebillno:"xsdd2733-8", sales: "800"},
? ? ? {product: "2", matno: "420200011480007",salebillno:"xsdd2733-2", sales: "300"},
? ? ? {product: "3", matno: "420200011480006",salebillno:"xsdd2733-5", sales: "100"},
? ? ? {product: "4", matno: "420200011480006",salebillno:"xsdd2733-3", sales: "200"},
? ? ? {product: "5", matno: "420200011480008",salebillno:"xsdd2738", sales: "600"},
? ? ? {product: "6", matno: "420200011480010",salebillno:"xsdd2734", sales: "400"},
? ? ? {product: "7", matno: "420200011480009",salebillno:"xsdd2735", sales: "700"},
? ? ? {product: "8", matno: "420200011480001",salebillno:"xsdd2737", sales: "500"}
? ? ?]
?? ??
?
/**數(shù)組根據(jù)數(shù)組對(duì)象中的某個(gè)屬性值進(jìn)行排序的方法?
? * 使用例子:newArray.sort(sortByArr(['matno'],true)) //表示根據(jù)matno屬性降序排列;若第二個(gè)參數(shù)不傳遞,默認(rèn)表示升序排序
? * @param attr 排序的屬性 ['matno','salebillno'...],根據(jù)一個(gè)字段或者多個(gè)字段排序
? * @param rev true表示升序排列,false降序排序
? * */
?
function sortByArr(arr, rev) {
?if (rev == undefined) {
?rev = 1;
?} else {
?rev = (rev) ? 1 : -1;
?}
?return function(a, b) {
?for (var i = 0; i < arr.length; i++) {
?let attr = arr[i]
?if (a[attr] != b[attr]) {
?if (a[attr] > b[attr]) {
?return rev * 1;
?} else {
?return rev * -1;
?}
?}
?}
}
}
/**升序**/
?newArray.sort(sortByArr(['matno','salebillno'],true))
[{product: '8', matno: '420200011480001', salebillno: 'xsdd2737', sales: '500'}
?{product: '4', matno: '420200011480006', salebillno: 'xsdd2733-3', sales: '200'}
?{product: '3', matno: '420200011480006', salebillno: 'xsdd2733-5', sales: '100'}
?{product: '1', matno: '420200011480006', salebillno: 'xsdd2733-8', sales: '800'}
?{product: '2', matno: '420200011480007', salebillno: 'xsdd2733-2', sales: '300'}
?{product: '5', matno: '420200011480008', salebillno: 'xsdd2738', sales: '600'}
?{product: '7', matno: '420200011480009', salebillno: 'xsdd2735', sales: '700'}
?{product: '6', matno: '420200011480010', salebillno: 'xsdd2734', sales: '400'}]
/**降序**/
newArray.sort(sortByArr(['matno'],false))
// 輸出
[{product: '6', matno: '420200011480010', salebillno: 'xsdd2734', sales: '400'}
?{product: '7', matno: '420200011480009', salebillno: 'xsdd2735', sales: '700'}
?{product: '5', matno: '420200011480008', salebillno: 'xsdd2738', sales: '600'}
?{product: '2', matno: '420200011480007', salebillno: 'xsdd2733-2', sales: '300'}
?{product: '1', matno: '420200011480006', salebillno: 'xsdd2733-8', sales: '800'}
?{product: '3', matno: '420200011480006', salebillno: 'xsdd2733-5', sales: '100'}
?{product: '4', matno: '420200011480006', salebillno: 'xsdd2733-3', sales: '200'}
?{product: '8', matno: '420200011480001', salebillno: 'xsdd2737', sales: '500'}]

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論