js中對象數(shù)組按對象屬性排序

數(shù)組對象要按屬性大小排序怎么辦?

數(shù)組對象屬性排序

var arr = [{
            data: 21,
            weather:'晴'
        }, {
            data: 111,
            weather:'小雨'
        }, {
            data: 32,
            weather:'大雨'
        }, {
            data: 2,
            weather:'小雨'
        }, {
            data: 2,
            weather:'陰'
        }, {
            data: 212,
            weather:'雪'
        }]

我們要如何實現(xiàn)數(shù)組中的對象按data大小排序?

sort方法

這里使用JavaScript sort() 方法,首先解釋下這個sort的方法

定義和用法

sort() 方法用于對數(shù)組的元素進行排序。

語法
arrayObject.sort(sortby)
返回值

對數(shù)組的引用。請注意,數(shù)組在原數(shù)組上進行排序,不生成副本。

說明

如果調用該方法時沒有使用參數(shù),將按字母順序對數(shù)組中的元素進行排序,說得更精確點,是按照字符編碼的順序進行排序。要實現(xiàn)這一點,首先應把數(shù)組的元素都轉換成字符串(如有必要),以便進行比較。

如果想按照其他標準進行排序,就需要提供比較函數(shù),該函數(shù)要比較兩個值,然后返回一個用于說明這兩個值的相對順序的數(shù)字。比較函數(shù)應該具有兩個參數(shù) a 和 b,其返回值如下:

若 a 小于 b,在排序后的數(shù)組中 a 應該出現(xiàn)在 b 之前,則返回一個小于 0 的值。
若 a 等于 b,則返回 0。
若 a 大于 b,則返回一個大于 0 的值。

實戰(zhàn)

下面開始使用sort(sortby) 來進行這個排序,并打印到控制臺:

function sortData(a, b) {
            return b.data - a.data
        }
        arr.sort(sortData);
        console.log(arr);

輸出結果:


輸出結果

tip:如果想要從小到大的順序可以把方法中a和b的位置互換一下。

function sortData(a, b) {
            return a.data - b.data
        }
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 第5章 引用類型(返回首頁) 本章內容 使用對象 創(chuàng)建并操作數(shù)組 理解基本的JavaScript類型 使用基本類型...
    大學一百閱讀 3,679評論 0 4
  • 轉載:在開發(fā)中,數(shù)組的使用場景非常多,平日中也涉及到很多數(shù)組的api/相關操作,一直也沒有對這塊內容進行一塊整理總...
    七色煙火閱讀 3,395評論 0 3
  • 1、波斯語:閑暇時報的,但因為突發(fā)事件,時間上不允許,被迫放棄。 2、阿拉伯語字母的發(fā)音及屬性:因為本身就有一定的...
    清雅_1314閱讀 195評論 0 2
  • 1. 知乎上有個問題: “傅園慧這種不正經的人會紅,我們的核心價值觀出了什么問題?” 隔著屏幕,給提問的家伙,扔去...
    山僧掃雨閱讀 1,487評論 5 12
  • 談起你的另一半你準備用什么詞語來形容?聰明?賢惠?傻呆萌?愚蠢?幼稚?但不管你怎么評價,那只是你選擇的TA,難道你...
    一只愛游泳的貓閱讀 1,033評論 0 1

友情鏈接更多精彩內容