導航:首頁 > 編程語言 > js數組比較大小

js數組比較大小

發布時間:2024-09-18 12:23:42

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

本文實例講述了js使用Array.prototype.sort()對數組對象排序的方法。分享給大家供大家參考。具體分析如下:
在講對數組對象進行排序時,我們先來簡單的了解一下Array.prototype.sort()。sort方法接受一個參數——Function,function會提供兩個參數,分別是兩個進行比較的元素,如果元素是String類型則通過Unicode
code進行比較,如果是Number類型則比較值的大小。如果比較的函數中返回1則兩個元素交換位置,0和-1不交換位置。先看一個例子:
復制代碼
代碼如下:var
arr
=
[3,
5,
2,
1];
//
從小到大排序
arr.sort(function
(a,
b)
{

return
a
>
b
?
1
:
-1;
});
//
得到的結果:[1,
2,
3,
5]
那麼回到我們的主題,如果是對一個數組對象進行排序,該怎麼寫呢?其實原理和上面一樣,如:
復制代碼
代碼如下: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的一個元素,即一個對象,所以直接比較兩個對象的屬性即可。
上面的例子中,最小的元素中有重復,如果需求是:先按b屬性從小到大排序,如果最小中有重復則再按a屬性排序,那應該怎麼寫呢?
在排序的時候,先按b屬性排序,如果x.b的大於y.b則將x移到y的右邊,如果x.b等於y.b則再通過x.a和y.a進行比較,所以代碼如下:
復制代碼
代碼如下: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程序設計有所幫助。

② 用JS代碼實現給定一個數組,[1,2,3,4,5,6,7,8,9],分別求它們的立方。

var arr1 = [1,2,3,4,5,6,7,8,9];
var arr = arr1.map(function(item,index,array){
return item*item*item;

})
返回的新數組arr則是元素立方運算後的新數組

③ js數組排序的幾種方法

一、 冒泡排序
平均復雜度:o(n^2) 空間復雜度:o(1) 穩定性:穩定
步驟: 1、比較相鄰的元素。如果第一個比第二個大,就交換他們兩個;
2、對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對,這樣,最後的元素應該會是最大的數;
3、針對所有的元素重復以上的步驟,除了最後一個;
4、持續每次對越來越少的元素重復上面的步驟,直到沒有任何一對數字需要比較。
二、選擇排序
平均復雜度:o(n^2) 空間復雜度:o(1) 穩定性:不穩定
步驟: 1、每一次循環,找到最小的那個數,並用變數記住它的索引
2、然後將最小值放在它該在的位置上
3、持續對越來越少的元素重復上面的步驟
三、插入排序
平均復雜度:o(n^2) 空間復雜度:o(1) 穩定性:穩定
(1)直接插入排序:將第一個數和第二個數排序,然後構成一個有序序列;將第三個數插入進去,構成一個新的有序序列;對第四個數、第五個數......直到最後一個數,重復第二步
(2)二分插入排序:將尋找每個數插入位置的方法改為折半比較即可
四、Shell排序(插入排序的一種,又稱為縮小增量排序)
平均復雜度:o(nlogn) 空間復雜度:o(1) 穩定性:不穩定
步驟:把數組按下標的一定增量分組,然後對每組使用直接插入排序
想學習更多前端開發的知識,就來北京尚學堂!

④ Js中的數組sort()排序問題

比較函數的參數 v1 和 v2 代表數組里的兩個元素

如果 v1 小於 v2,排序後的數組 v1 在 v2 前面,此時返回一個內負數 (即上面的 return -1)容

如果 v1 等於 v2,排序後兩者位置不變,此時返回 0(即上面的 return 0)

如果 v1 大於 v2,排序後 v1 在v2 後面, 返回一個正數(即上面的 return 1)

//比較函數一般簡寫成:

arr.sort(function(a,b){
returna-b//升序
});

arr.sort(function(a,b){
returnb-a//降序
});

//對應上面的解釋好好想下,不難理解為什麼這樣寫
閱讀全文

與js數組比較大小相關的資料

熱點內容
皮膚病理發工具箱圖片 瀏覽:280
在一個資料庫中已經設置了自動宏 瀏覽:110
用兔子助手遷移蘋果數據 瀏覽:110
閑蛋app是哪個公司的 瀏覽:997
網路掉線怎麼查詢故障維護 瀏覽:769
cad改圖後多了個文件 瀏覽:974
什麼app帶星空濾鏡 瀏覽:227
手機怎麼登錄香港網站 瀏覽:939
java根據得到的數據實時繪圖 瀏覽:413
nas網路存儲器用什麼好 瀏覽:449
沈陽企業網站建設要多少錢 瀏覽:714
java數組儲存數據 瀏覽:533
makefile是什麼文件 瀏覽:243
比較不同文件夾的圖片 瀏覽:204
江陰教育app密碼忘記了怎麼辦 瀏覽:323
javautil包 瀏覽:958
隨身wifi無法連接到網路 瀏覽:792
餓了么網路連接斷開提示怎麼關掉 瀏覽:150
怎麼把ai文件存在一個pdf 瀏覽:851
java調用oracle存儲過程數據集 瀏覽:387

友情鏈接