最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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ù)組對象進(jìn)行排序時,我們先來簡單的了解一下Array.prototype.sort()。sort方法接受一個參數(shù)——Function,function會提供兩個參數(shù),分別是兩個進(jìn)行比較的元素,如果元素是String類型則通過Unicode code進(jìn)行比較,如果是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ù)組對象進(jìn)行排序,該怎么寫呢?其實原理和上面一樣,如:

復(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進(jìn)行比較,所以代碼如下:

復(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)文章

最新評論

湘潭县| 炉霍县| 临潭县| 丰台区| 清徐县| 米易县| 宁德市| 宜阳县| 土默特右旗| 民乐县| 陆良县| 尉氏县| 清徐县| 广饶县| 延庆县| 沙洋县| 抚远县| 新源县| 诸暨市| 峨山| 呈贡县| 洪雅县| 阿勒泰市| 方山县| 长宁区| 宜都市| 东山县| 攀枝花市| 呼伦贝尔市| 襄城县| 望奎县| 长春市| 文成县| 许昌市| 东山县| 武安市| 霍州市| 醴陵市| 乐亭县| 资兴市| 黔南|