當前位置:成語大全網 - 書法字典 - Js使用Array.prototype.sort()對數組對象進行排序。

Js使用Array.prototype.sort()對數組對象進行排序。

本文通過壹個例子講述了js如何使用Array.prototype.sort()對數組對象進行排序。分享給大家,供大家參考。具體分析如下:

在談到數組對象排序時,我們先簡單看壹下Array.prototype.sort()。sort方法接受壹個參數-函數,函數會提供兩個參數,這是兩個用於比較的元素。如果元素是字符串類型,它將通過Unicode傳遞。

代碼,如果是Number類型,則比較值的大小。如果compared函數返回1,則兩個元素交換位置,0和-1不交換位置。先看壹個例子:

復制代碼

代碼如下:var

arrive)

=

[3,

5,

2,

1];

//

從小到大排序

arr.sort(函數

(壹、

b)

{

返回

a

& gt

b

1

-1;

});

//

結果:【1,

2,

3,

5]

那麽回到我們的話題,如果我們對壹個數組對象進行排序,應該怎麽寫呢?實際上,原理和上面壹樣,比如:

復制代碼

代碼如下:var

arrive)

=

[

{

a

2,

b

3.2},

{

a

3,

b

1.2},

{

a

4,

b

2.2},

{

a

6,

b

1.2},

{

a

5,

b

3.2}

]

///

按屬性b從小到大排序。

arr.sort(函數(x,

y){

返回

十. b

& gt

y.b

1:-1;

});

x和y是arr的壹個元素,也就是壹個對象,所以可以直接比較兩個對象的屬性。

在上面的例子中,最小的元素中有重復。如果要求是:先按B屬性從小到大排序,再按最小元素有重復的A屬性排序,應該怎麽寫?

排序時,先按B屬性排序。如果x.b大於y.b,則將X移到y的右邊,如果x.b等於y.b,則與Y.A .比較,所以代碼如下:

復制代碼

代碼如下:arr.sort(函數

(x,

y)

{

如果

(十. b

& gt

y.b)

{

返回

1;

}

其他

如果

(十. b

===

y.b)

{

返回

x.a

& gt

y.a

1

-1;

}

其他

如果

(十. b

& lt

y.b)

{

返回

-1;

}

})

希望這篇文章對妳的javascript程序設計有所幫助。