js json陣列按某一欄位排序
一.首先給大家介紹js中內建的 sort() 方法
此方法預設是按字母順序對陣列中的元素進行排序的,說得更精確點,是按照字元編碼的順序進行排序。
看如下例子:
當陣列中元素為 數字型別 時,排序結果與我們設想的完全不同,因為預設是按照字元編碼的順序進行排序的。
解決方案:sort() 方法接收一個可選引數(此引數必須是函式),我們可以自己定義排序規則,如下圖
二. 對 json 排序的具體實現
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
/**
@description 根據某個欄位實現對json陣列的排序*
@param array 要排序的json陣列物件*
@param field 排序欄位(此引數必須為字串)*
@param reverse 是否倒序(預設為false)*
@return array 返回排序後的json陣列*/function
jsonSort(array, field, reverse) {//陣列長度小於2
或 沒有指定排序欄位 或 不是json格式資料if(array.length
< 2 || !field || typeof
array[0] !== "object")
return
array;//數字型別排序if(typeof
array[0][field] === "number")
{array.sort(function(x,
y) { return
x[field] - y[field]});}//字串型別排序if(typeof
array[0][field] === "string")
{array.sort(function(x,
y) { return
x[field].localeCompare(y[field])});}//倒序if(reverse)
{array.reverse();}return
array;} |
PS:JS中:json物件陣列按物件屬性排序
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
var
array = [{name:
'a',
phone: 1},{name:
'b',
phone: 5},{name:
'd',
phone: 3},{name:
'c',
phone: 4}]array.sort(getSortFun('desc',
'phone'));function
getSortFun(order, sortBy) {var
ordAlpah = (order == 'asc')
?
Android開發&異常及處理
« 上一篇
echarts隱藏座標軸,以及控制柱狀圖顏色
下一篇 »
相關推薦js json陣列按某一欄位排序一.首先給大家介紹js中內建的 sort() 方法 此方法預設是按字母順序對陣列中的元素進行排序的,說得更精確點,是按... PHP關聯陣列按某一value值排序1.定義 二維陣列根據某個欄位排序有兩種辦法,一種是通過sort自己寫程式碼,一種是直接用array_multisort排序函式,這裡直接說使用array_m... php對二維陣列中某一欄位進行排序<?php $array = array( array('name'=>'手機','brand'=>... 對二維陣列的某一欄位求和方法一: array_sum(array_map(create_function('$val', 'return $val[... php 對二位陣列按某個鍵值排序<?php $arr = array( array('id'=>2,'price'=>100,'num'=>1), arr... php二維陣列按某個鍵值排序(突然用到以往知識,算是臨時補充筆記吧)print_r($arr);排序後Array ( [0] => Array ( [name] => ... php二維陣列按某個鍵值排序function arrSort($arr,$field,$sort='asc'){$newArr = $sortArr = ... List>按某個欄位排序對service層返回的資料進行排序 1、cont... sql 語句查詢 按某欄位去重 保留按某個欄位排序top1例子: create table tablename (id int identity(1,1),attachid int... mongodb更新物件陣列的某個欄位陣列庫文件: {_id: 1, usernames: [{name: 'jack',userId:'a'},{n... |


