導航:首頁 > 編程語言 > 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數組比較大小相關的資料

熱點內容
vivo手機的便簽文件夾是哪個 瀏覽:672
win10升級助手未激活 瀏覽:530
瀏覽器保存密碼在哪個文件 瀏覽:691
sitemap代碼 瀏覽:108
資料庫的使用過程 瀏覽:761
excel怎麼用高級篩選數據 瀏覽:438
js中怎麼設置css樣式 瀏覽:724
商業網站模板下載 瀏覽:548
c怎麼調用資料庫 瀏覽:438
vue封裝js方法 瀏覽:705
電腦文件夾藍色的 瀏覽:713
tp無線網設置管理密碼忘記了怎麼辦 瀏覽:386
ipa里資源文件 瀏覽:110
蘋果的文件管理在那裡 瀏覽:633
qq瀏覽器文件如何發到qq 瀏覽:736
百度地圖載入多個點代碼 瀏覽:146
數據橫向復制如何縱向粘貼 瀏覽:433
2020cab畫圖數據怎麼調 瀏覽:534
teamview12linux 瀏覽:175
java編輯word文件 瀏覽:149

友情鏈接