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

熱點內容
win7win10c盤空間越來越小 瀏覽:806
悠途出行app在哪裡選座 瀏覽:67
突襲2哪個版本好玩 瀏覽:549
網站怎麼申請認證 瀏覽:676
簡訊apk是什麼文件 瀏覽:940
app官方下載在哪裡 瀏覽:511
iphone5s改名字 瀏覽:772
win10文件夾打開一直閃跳 瀏覽:208
win10攝像頭不能拍照 瀏覽:56
雲陽數控編程培訓哪裡學 瀏覽:519
文件的存放路徑怎麼改 瀏覽:583
cad字體文件如何導出 瀏覽:236
cs16需要cdkey哪個文件里 瀏覽:817
如何讓另一個表格的數據關聯 瀏覽:368
來自app的快捷指令是怎麼有的 瀏覽:844
保留文件的原始文字圖片 瀏覽:385
國外網站的店怎麼看呢 瀏覽:56
ps入門必備文件 瀏覽:348
以前的相親網站怎麼沒有了 瀏覽:15
蘋果6耳機聽歌有滋滋聲 瀏覽:768

友情鏈接