JavaScript中數(shù)組嵌套對象排序方法的示例詳解
在 JavaScript 中,可以使用 sort() 方法對包含嵌套對象的數(shù)組進(jìn)行排序。
sort() 方法可以接受一個比較函數(shù)作為參數(shù)來指定排序規(guī)則。該比較函數(shù)應(yīng)該返回一個負(fù)數(shù)、零或正數(shù),以指示要排序的兩個元素的相對順序。如果要對數(shù)組中的對象按照其屬性進(jìn)行排序,則可以在比較函數(shù)中訪問這些屬性并將它們進(jìn)行比較。如果要對嵌套對象進(jìn)行排序,則可以使用點表示法或方括號表示法訪問嵌套對象的屬性。
示例1
let arr = [ { id: 1, name: 'John', age: 25 }, { id: 2, name: 'Bob', age: 30 }, { id: 3, name: 'Mary', age: 30 }, { id: 4, name: 'Tom', age: 20 } ]; arr.sort(function(a, b) { if (a.age < b.age) { return -1; } if (a.age > b.age) { return 1; } // 年齡相同的情況下,按照 id 排序 if (a.id < b.id) { return -1; } if (a.id > b.id) { return 1; } return 0; }); console.log(arr);
執(zhí)行結(jié)果:
示例2
var arr = [ {name:'大', age:5}, {name:'劍', age:18}, {name:'師', age:8}, ]; // 排序方法 function compare(property) {//property:根據(jù)什么屬性排序 return function(a,b){ var value1 = a[property]; var value2 = b[property]; // value2 - value1; ——> 降序 // value1 - value2; ——> 升序 return value1 - value2;//升序排序 } } console.log(arr.sort(compare('age')))
執(zhí)行結(jié)果:
示例3
js提供了字符串的對比方法**localeCompare()**,該方法返回的是一個數(shù)字用來表示一個參考字符串和對比字符串是排序在前,在后或者相同。該方法基本不單獨使用,大部分時間是配合字符串排序使用的。
let arr = [ { name: "張三", age: 20 }, { name: "李四", age: 25 }, { name: "王五", age: 22 } ]; // 按年齡升序排序 arr.sort((a, b) => a.age - b.age); console.log(arr); /* [ { name: "張三", age: 20 }, { name: "王五", age: 22 }, { name: "李四", age: 25 } ] */ // 按姓名升序排序 arr.sort((a, b) => a.name.localeCompare(b.name)); console.log(arr); /* [ { name: "張三", age: 20 }, { name: "李四", age: 25 }, { name: "王五", age: 22 } ] */
什么是數(shù)組嵌套對象
數(shù)組嵌套對象是指一個數(shù)組中的元素是對象,這些對象可以包含多個屬性或方法。
處理嵌套對象數(shù)組時,可以使用多種方法來訪問和操作其中的數(shù)據(jù)。以下是一些常見的操作方法:
- 遍歷數(shù)組:可以使用for循環(huán)、forEach方法或者for…of循環(huán)來遍歷數(shù)組中的每個對象。
- 訪問對象屬性:通過點符號(.)或方括號([])語法來訪問對象的屬性。
- 遞歸處理:如果數(shù)組中的對象還包含數(shù)組,可以通過遞歸函數(shù)來處理嵌套結(jié)構(gòu)。
- 使用高階函數(shù):map、filter、reduce等高階數(shù)組方法可以用來轉(zhuǎn)換或操作數(shù)組中的元素。
到此這篇關(guān)于JavaScript中數(shù)組嵌套對象排序方法的示例詳解的文章就介紹到這了,更多相關(guān)JavaScript數(shù)組嵌套對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
微信小程序授權(quán)獲取用戶詳細(xì)信息openid的實例詳解
這篇文章主要介紹了微信小程序授權(quán)獲取用戶詳細(xì)信息openid的實例詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-09-09Bootstrap Scrollspy源碼學(xué)習(xí)
這篇文章主要介紹了Bootstrap Scrollspy源碼學(xué)習(xí),具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03關(guān)于Vue中postcss-pxtorem的使用詳解
在Web開發(fā)領(lǐng)域,響應(yīng)式設(shè)計已經(jīng)成為一個不可或缺的趨勢,PostCSS插件——postcss-pxtorem的出現(xiàn)為我們提供了一種更加智能和高效的解決方案,本文將深入探討postcss-pxtorem的使用,包括其背后的原理、配置選項、實際應(yīng)用中的注意事項等方面,需要的朋友可以參考下2023-12-12JS實現(xiàn)手機號脫敏、郵箱脫敏、身份證號脫敏、姓名脫敏等常見脫敏代碼示例
這篇文章主要給大家介紹了關(guān)于JS實現(xiàn)手機號脫敏、郵箱脫敏、身份證號脫敏、姓名脫敏等常見脫敏的相關(guān)資料,脫敏的目的是保護(hù)用戶隱私,一種常見的方式是顯示部分字符,用星號或其他字符替代,需要的朋友可以參考下2024-02-02基于RequireJS和JQuery的模塊化編程日常問題解析
本文是小編日常收集整理些有關(guān)RequireJS和JQuery的模塊化編程,感興趣的朋友一起學(xué)習(xí)吧2016-04-04JS中的THIS和WINDOW.EVENT.SRCELEMENT詳解
對于js初學(xué)著必須理解this和srcElement的應(yīng)用,這也是面試中經(jīng)??嫉降?。下面我們就通過幾個示例來詳細(xì)了解下2015-05-05