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

js使用Array.prototype.sort()對數(shù)組對象排序的方法

 更新時間:2015年01月28日 11:59:04   投稿:shichen2014  
這篇文章主要介紹了js使用Array.prototype.sort()對數(shù)組對象排序的方法,實例分析了Array.prototype.sort()的原理與相關(guān)的使用技巧,需要的朋友可以參考下

本文實例講述了js使用Array.prototype.sort()對數(shù)組對象排序的方法。分享給大家供大家參考。具體分析如下:

在講對數(shù)組對象進行排序時,我們先來簡單的了解一下Array.prototype.sort()。sort方法接受一個參數(shù)——Function,function會提供兩個參數(shù),分別是兩個進行比較的元素,如果元素是String類型則通過Unicode code進行比較,如果是Number類型則比較值的大小。如果比較的函數(shù)中返回1則兩個元素交換位置,0和-1不交換位置。先看一個例子:

復(fù)制代碼 代碼如下:
var arr = [3, 5, 2, 1];
// 從小到大排序
arr.sort(function (a, b) {
    return a > b ? 1 : -1;
});
// 得到的結(jié)果:[1, 2, 3, 5]

那么回到我們的主題,如果是對一個數(shù)組對象進行排序,該怎么寫呢?其實原理和上面一樣,如:

復(fù)制代碼 代碼如下:
var arr = [
    { 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(function(x, y){
    return x.b > y.b ? 1:-1;
});

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

上面的例子中,最小的元素中有重復(fù),如果需求是:先按b屬性從小到大排序,如果最小中有重復(fù)則再按a屬性排序,那應(yīng)該怎么寫呢?

在排序的時候,先按b屬性排序,如果x.b的大于y.b則將x移到y(tǒng)的右邊,如果x.b等于y.b則再通過x.a和y.a進行比較,所以代碼如下:

復(fù)制代碼 代碼如下:
arr.sort(function (x, y) {
    if (x.b > y.b) {
        return 1;
    } else if (x.b === y.b) {
        return x.a > y.a ? 1 : -1;
    } else if (x.b < y.b) {
        return -1;
    }
})

希望本文所述對大家的javascript程序設(shè)計有所幫助。

相關(guān)文章

  • javascript實現(xiàn)日期時間動態(tài)顯示示例代碼

    javascript實現(xiàn)日期時間動態(tài)顯示示例代碼

    這篇文章主要介紹了javascript實現(xiàn)日期時間動態(tài)顯示示例代碼,頁面動態(tài)顯示時間變化的方法有很多,本文為大家介紹下使用javascript的具體實現(xiàn),感興趣的朋友可以參考一下
    2015-09-09
  • javascript bom是什么及bom和dom的區(qū)別

    javascript bom是什么及bom和dom的區(qū)別

    BOM是瀏覽器對象模型,DOM是文檔對象模型,前者是對瀏覽器本身進行操作,而后者是對瀏覽器(可看成容器)內(nèi)的內(nèi)容進行操作。這篇文章給大家介紹javascript bom是什么及bom和dom的區(qū)別,感興趣的朋友一起學(xué)習(xí)吧
    2015-11-11
  • javascript實現(xiàn)checkbox復(fù)選框?qū)嵗a

    javascript實現(xiàn)checkbox復(fù)選框?qū)嵗a

    這篇文章主要為大家介紹了javascript實現(xiàn)checkbox復(fù)選框?qū)嵗a,對checkbox復(fù)選框進行美化,感興趣的小伙伴們可以參考一下
    2016-01-01
  • 每天一篇javascript學(xué)習(xí)小結(jié)(屬性定義方法)

    每天一篇javascript學(xué)習(xí)小結(jié)(屬性定義方法)

    這篇文章主要介紹了javascript中的屬性定義方法知識點,對屬性定義方法的基本使用方法,以及各種方法進行整理,感興趣的小伙伴們可以參考一下
    2015-11-11
  • 非主流的textarea自增長實現(xiàn)js代碼

    非主流的textarea自增長實現(xiàn)js代碼

    今天稍微研究了下textarea隨輸入內(nèi)容自動增長的功能,通過google參考了一些實現(xiàn)方式
    2011-12-12
  • javaScript中with函數(shù)用法實例分析

    javaScript中with函數(shù)用法實例分析

    這篇文章主要介紹了javaScript中with函數(shù)用法,實例分析了javascript中with的功能、定義及相關(guān)使用技巧,需要的朋友可以參考下
    2015-06-06
  • JS實現(xiàn)選定指定HTML元素對象中指定文本內(nèi)容功能示例

    JS實現(xiàn)選定指定HTML元素對象中指定文本內(nèi)容功能示例

    這篇文章主要介紹了JS實現(xiàn)選定指定HTML元素對象中指定文本內(nèi)容功能,涉及javascript針對HTML頁面元素的運算與選定相關(guān)操作技巧,需要的朋友可以參考下
    2017-02-02
  • js/jquery獲取文本框輸入焦點的方法

    js/jquery獲取文本框輸入焦點的方法

    本篇文章主要是對js/jquery獲取文本框輸入焦點的方法進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-03-03
  • js實現(xiàn)簡單五子棋游戲

    js實現(xiàn)簡單五子棋游戲

    這篇文章主要為大家詳細(xì)介紹了js實現(xiàn)簡單五子棋游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • uniapp實現(xiàn)app熱更新的方法

    uniapp實現(xiàn)app熱更新的方法

    本文主要介紹了uniapp實現(xiàn)app熱更新的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01

最新評論