陣列物件排序

2021-08-25 05:51:20 字數 1881 閱讀 2404

一、普通陣列

//  js中用方法sort()為陣列排序。sort()方法有乙個可選引數,是用來確定元素順序的函式。如果這個引數被省略,那麼陣列中的元素將按照ascii字元順序進行排序。如:

let arr1 = [12, 34, 2, 42, 456, 234];

console.log(arr1.sort()); //12,2,234,42,456

let arr2 = ['a', 'b', 'u', 'q', 's', 'a'];

console.log(arr2.sort());

// 比較函式接收兩個引數,如果第乙個引數應該位於第二個之前則返回乙個負數,如果兩個引數相等則返回0,如果第乙個引數應該位於第二個之後則返回乙個正數。

//公升序

let comparesec = function (obj1, obj2) 

else if (obj1 < obj2)

else

}console.log(arr1.sort(comparesec))

console.log(arr2.sort(comparesec))

//降序,

let compareasce = function (obj1, obj2) 

else if (obj1 > obj2)

else

}console.log(arr1.sort(compareasce))

console.log(arr2.sort(compareasce))

// 我們並不能用比較函式比較乙個不能轉化為數字的字串與數字的順序:

var arr = ["b", 5];

console.log(arr.sort(comparesec))

// 結果是 ["b", 5] 。因為比較函式在比較時,會把先把字串轉化為數字,然後再比較,字串b不能轉化為數字,所以就不能比較大小。然而,當不用比較函式時,會比較ascii值,所以結果是 [5, "b"] 。

console.log(arr.sort());

二、陣列物件

let arr1 = [,,

,,,];

let compare = function (obj1, obj2) else if (value1 < value2) else

};console.log(arr1)

console.log(arr1.sort(compare));

// 但是對age屬性進行排序時需要注意了,如果age屬性的值是數字,那麼排序結果會是我們想要的。但很多時候我們從伺服器傳回來的資料中,屬性值通常是字串。

// 我們的期望是5排在25前面,但是結果不是。這是因為當兩個數字字串比較大小時,會比較它們的ascii值大小,比較規則是:從第乙個字元開始,順次向後直到出現不同的字元為止,然後以

// 第乙個不同的字元的ascii值確定大小。所以"24"與"5"比較大小時,先比較」2「與"5"的ascii值,顯然」2「的ascii值比"5"小,即確定排序順序。

// 現在,我們需要對比較函式再做一些修改:

let arr2 = [,,

,,,];

let compareall = function (prop)

if (val1 < val2) else if (val1 > val2) else }};

console.log(arr1.sort(compareall("age")))

console.log(arr2.sort(compareall("age")))

//只是最近專案中遇到了對陣列物件進行排序的問題,所以在這裡在網上找了一些文章寫分享一下,相信總能幫到一些朋友。

Js物件陣列排序,陣列排序

陣列物件排序var arr varcompare function obj1,obj2 else if val1 val2 else console.log arr.sort compare 輸出結果為 object object 上面的 優化 這個只能排序age屬性值為number型別的,如果屬性...

iOS物件陣列排序

個人理解及總結 用到方法 這裡的array是我們要排序的陣列 nsarray sort array sortedarrayusingcomparator nscomparisonresult id nonnull obj1,id nonnull obj2 這裡obj1是陣列array中的第乙個物件 ...

vue陣列物件排序

普通陣列的排序 先看 陣列物件的排序 如果陣列項是物件,我們需要根據陣列項的某個屬性對陣列進行排序,要怎麼辦呢?其實和前面的比較函式也差不多。所以我就只把部分 分享出來了。如何對這個陣列進行age排序呢 students 比較函式 function sortbykey array,key 這裡我是用...