js中如何對(duì)json數(shù)組進(jìn)行排序
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)文章
js中常用的4種模糊查詢?cè)斀?includes()、indexOf()、search()、match())
這篇文章主要給大家介紹了關(guān)于js中常用的4種模糊查詢(includes()、indexOf()、search()、match())的相關(guān)資料,搜索可以使我們更快的找到某一個(gè)關(guān)鍵詞或者某一個(gè)商品,所以模糊查詢和下拉匹配也成了前端必備的一個(gè)小技能,需要的朋友可以參考下2023-11-11JavaScript面試必備之垃圾回收機(jī)制和內(nèi)存泄漏詳解
垃圾回收機(jī)制和內(nèi)存泄漏是JavaScript面試時(shí)常常問到的問題,這篇文章就為大家詳細(xì)整理了他們的相關(guān)知識(shí),感興趣的小伙伴可以跟隨小編一起了解一下2023-05-05javascript轉(zhuǎn)換靜態(tài)圖片,增加粒子動(dòng)畫效果
這篇文章主要介紹了javascript轉(zhuǎn)換靜態(tài)圖片,增加粒子動(dòng)畫效果,非常的炫酷,需要的朋友可以參考下2015-05-05OpenLayers3實(shí)現(xiàn)對(duì)地圖的基本操作
這篇文章主要為大家詳細(xì)介紹了OpenLayers3實(shí)現(xiàn)對(duì)地圖的基本操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-09-09JavaScript中誤用/g導(dǎo)致的正則test()無法正確重復(fù)執(zhí)行的解決方案
這篇文章主要介紹了JavaScript中誤用/g導(dǎo)致的正則test()無法正確重復(fù)執(zhí)行的解決方案的相關(guān)資料,需要的朋友可以參考下2016-07-07純js實(shí)現(xiàn)倒計(jì)時(shí)功能
本文主要介紹了通過js實(shí)現(xiàn)頁面的倒計(jì)時(shí)功能的思路與方法,具有一定的參考價(jià)值,下面跟著小編一起來看下吧2017-01-01詳解Javascript 中的 class、構(gòu)造函數(shù)、工廠函數(shù)
這篇文章主要介紹了詳解Javascript 中的 class、構(gòu)造函數(shù)、工廠函數(shù),需要的朋友可以參考下2017-12-12深入理解javascript嚴(yán)格模式(Strict Mode)
Strict mode是JavaScript1.8.5引進(jìn)的技術(shù),但還沒有瀏覽器確實(shí)可靠的實(shí)現(xiàn)了嚴(yán)格模式,所以使用時(shí)要小心并且多測(cè)試。Strict mode可以應(yīng)用于整個(gè)腳本,也可以適合于單個(gè)函數(shù)。2014-11-11