JS實現根據數組對象的某一屬性排序

JS實現根據數組對象的某一屬性排序

    • 一、冒泡排序(先了解冒泡排序機制)
    • 二、根據數組對象的某一屬性排序(引用sort方法排序)

一、冒泡排序(先了解冒泡排序機制)

以從小到大排序為例,冒泡排序的原理就是通過兩層循環把數組中兩兩相鄰的元素進行比較,是的大的元素放到后邊,元素交換位置,從而一步步的交換元素的位置,使得最大的元素放到數組的末尾,這樣內部的循環就進行了一輪,再根據外部的循環依次再把次大一點的元素放到數組的末尾,從而實現數組的逐步排序。代碼如下:

// 冒泡排序
var arr = [52,3,8,57,75,2,1];
for (var i = 0; i<arr.length; i++) {for (var j =0;j<arr.length-i; j++) {if(arr[j]>arr[j+1]){var temp = arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}
}
console.log(arr); //[1, 2, 3, 8, 52, 57, 75]

二、根據數組對象的某一屬性排序(引用sort方法排序)

定義一個數組

var newArray = [{name: "aaa",value: 0
},
{name: "ddd",value: 3
},
{name: "bbb",value: 1
},
{name: "eee",value: 4
},
{name: "ccc",value: 2
}];// 排序
function compare(property) {return function (a, b) {var value1 = a[property];var value2 = b[property];return value1 - value2;}
}
//打印看結果
console.log(newArray.sort(compare("value")))//根據字符串排序,不能用 - ,字符串相減得到NAN,要用<,> 來
function compare(prop) {return function (a, b) {var value1 = a.props[prop].uiValues[0]var value2 = b.props[prop].uiValues[0]if(value1 > value2){return -1;}else if(value1 < value2){return 1;}else{return 0;}}
}

在這里插入圖片描述在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/696671.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/696671.shtml
英文地址,請注明出處:http://en.pswp.cn/news/696671.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【EI會議征稿通知】第十屆能源材料與環境工程國際學術會議(ICEMEE 2024)

第十屆能源材料與環境工程國際學術會議&#xff08;ICEMEE 2024&#xff09; 2024 10th International Conference on Energy Materials and Environment Engineering 隨著前9年的成功&#xff0c;ICEMEE在2024年迎來了第10屆。很榮幸地宣布&#xff0c;第十屆能源材料與環境…

養老項目技術架構和工程結構

數據層&#xff1a;MySQL、Redis 服務層&#xff1a;SpringBoot、SpringMVC、SpringCache結合Redis的緩存、定時任務XXL-JOB、和swagger配合使用生成接口文檔的Knife4j、Lombok、雙向通信使用的WebSocket以及Spring Security 接入層使用的nginx——反向代理、負載均衡 前端使…

【rust】vscode下rust-analyzer和Rust Test Lens的Lens

背景 一個粉絲問&#xff1a; 我編輯的launch.json為什么只在按F5的時候工作 按這個debug按鈕就不工作&#xff1f; 那在哪改這個插件的配置文檔&#xff1f;我一直用的F5 今天上午才注意到這個問題&#xff0c;比如怎么改程序的命令行參數&#xff0c;我意思是如果我非要用…

搭建sql-labs靶機環境

phpstudy&#xff08;小皮面板&#xff09; 先下載phpstudy&#xff08;小皮面板&#xff09;軟件&#xff0c;方便我們快速搭建環境&#xff0c;該軟件程序包集成最新的ApachePHPMySQLngix,一次性安裝,無須配置即可使用,是非常方便、好用的PHP調試環境.該程序不僅包括PHP調試…

D1302——高性能、低功耗并附帶RAM的涓流充電實時時鐘電路芯片,可提供秒、 分、小時、星期、日期、月 份和年等計時數據

D1302是一塊高性能、低功耗并附帶RAM的涓流充電實時時鐘電路。 主要特點&#xff1a; ● 實時時鐘可提供秒、 分、小時、星期、日期、月 份和年等計時數據&#xff0c;到2100 年止。一個月小于31天時可自動調整&#xff0c;且具有閏年補償功能 ● 31X8 位通用暫存RAM ● 采用S…

【Apache Spark】Spark 的基本概念和在大數據分析中的應用

Apache Spark是一個開源的分布式計算引擎&#xff0c;用于大規模數據處理和分析。它提供了一個高級別的API&#xff0c;可以在集群中快速執行計算任務&#xff0c;并且能夠處理多種類型的數據&#xff0c;包括結構化數據、半結構化數據和非結構化數據。 Spark的核心概念是彈性…

對話 zkPokerdot | 妙用 ZKP 技術,為鏈上游戲創造公平競技場

在數字游戲的領域中&#xff0c;無論是沉浸于傳統游戲的虛擬世界&#xff0c;還是探索 Web3 游戲的前沿領域&#xff0c;玩家們都追求擁有一場公平的對決。zkPokerdot 項目應運而生。通過 ZKP 技術&#xff0c;zkPokerdot 為鏈上游戲提供了一個既去中心化又保障隱私的公平競技場…

@Conditional注解

簡要說明 Conditional注解來源于org.springframework.context.annotation包中&#xff0c;也就是它是Spring中的注解&#xff0c;并不是SpringBoot的注解&#xff0c;他的作用是為了bean的裝載到容器中增加一個條件判斷&#xff0c;在滿足條件下才會裝載到容器中&#xff0c;這…

FariyGUI × Cocos Creator 入門

前言 程序員向的初探Cocos Creator結和FairyGUI的使用&#xff0c;會比較偏向FairyGUI一點&#xff0c;默認各位讀者都熟練掌握Cocos Creator以及js/ts腳本編寫。 初探門徑&#xff0c;歡迎大佬指教&#xff0c;歡迎在評論區或私信與本人交流&#xff0c;謝謝&#xff01; 下…

Linux系統安裝zookeeper

Linux安裝zookeeper 安裝zookeeper之前需要安裝jdk&#xff0c;確認jdk環境沒問題之后再開始安裝zookeeper 下載zookeeper壓縮包&#xff0c;官方下載地址&#xff1a;Apache Download Mirrors 將zookeeper壓縮包拷貝到Linux并解壓 # (-C 路徑)可以解壓到指定路徑 tar -zxv…

dubbo源碼中設計模式——負載均衡中模版模式的應用

模版模式介紹 在模板模式&#xff08;Template Pattern&#xff09;中&#xff0c;一個抽象類公開定義了執行它的方法的方式/模板。它的子類可以按需要重寫方法實現&#xff0c;但調用將以抽象類中定義的方式進行。這種類型的設計模式屬于行為型模式。 使用場景&#xff1a;定…

Lua內存管理策略

傳統的內存管理策略主要分為兩種&#xff1a;引用計數&#xff0c;和垃圾回收。相比后者每一段時間執行一次回收周期&#xff0c;前者是對于每一個變量都維護被引用數的策略。對于Lua這種輕量化語言而言&#xff0c;占據大內存的開銷是極力避免的&#xff0c;而前者的方式顯然是…

singularity build用法詳解,及實例

singularity build 命令是 Singularity 中非常重要的一個功能,它允許用戶從定義文件、現有的 Singularity 容器或者其他容器平臺(如 Docker)的鏡像來構建一個新的 Singularity 容器。這個命令主要用于創建定制化的容器環境,以適應特定的應用和需求。 命令格式 singularit…

JDBC的DBUtil 和 xxxDAO 示例

DBUtil package common;import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;import javax.sql.DataSource; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;public class DBUtil {// 需要封裝…

C語言運用中斷子系統用驅動控制led實驗,c語言串口led點燈實驗(驅動+應用層)

中斷子系統用驅動控制led實驗 驅動代碼 #include <linux/init.h> #include <linux/module.h>#include<linux/interrupt.h> #include<linux/gpio.h> #include<linux/timer.h>#include<linux/of.h> #include<linux/of_irq.h> #inclu…

GB/T 17640-2023 長絲機織土工布檢測

長絲機織土工布是指以合成纖維長絲為原料織制而成的土工布&#xff0c;按纖維品種分為滌綸、丙綸、錦綸 等長絲機織土工布&#xff1b;按用途分為反濾布、復合用基布、管袋布、模袋布等。 GB/T 17640-2023 長絲機織土工布測試項目&#xff1a; 測試要求 測試標準 經向抗拉強…

實現律所高質量發展-Alpha法律智能操作系統

律師行業本質上屬于服務行業&#xff0c;而律師團隊作為一個獨立的服務單位&#xff0c;應當包含研發、市場、銷售、服務等單位發展的基礎工作環節。但現實中&#xff0c;很多律師團隊其實并沒有區分這些工作。鑒于此&#xff0c;上海市錦天城律師事務所醫藥大健康行業資本市場…

【備忘】幾個特殊的注冊表路徑

記錄幾個有用的注冊表路徑。防止用到忘記了。&#xff08;非教程篇&#xff09; 計算機\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\Start 計算機\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\WindowsLogon\HideFastUserSwitching 虛擬桌…

【SQL注入】靶場SQLI DUMB SERIES-26空格和注釋被過濾

26題提示所有的空格和注釋都會被過濾掉 輸入?id0判斷閉合方式&#xff0c;回顯報錯可以確定閉合方式為單引號 正常思路是需要通過注釋符將后面的語句注釋掉&#xff0c;但是這一關的注釋符被過濾了&#xff0c;可以考慮使用將后面的語句也閉合的思路來避免引號帶來的報錯。輸…

【區塊鏈技術——智能合約——以太坊平臺——金融交易】

引言 在如今這個高度數字化的世界中&#xff0c;金融交易趨向于使用更加先進的技術來減少交易成本&#xff0c;提高效率。區塊鏈技術的出現作為一場革命&#xff0c;尤其是其衍生技術——智能合約&#xff0c;為金融交易帶來諸多新機遇。本文將以最廣泛使用的區塊鏈平臺——以…