導航:首頁 > 編程語言 > js怎麼讓數組倒序排列

js怎麼讓數組倒序排列

發布時間:2023-03-28 16:17:20

js交換數組中2個元素的位置,實現排序功能

原始數據:數組中有三個關於電影的對象數據

需求:需要根據評分(rating)的高低,按倒序排列,即評分越高,越靠前

錯誤示範一:

個人想法:把當前值賦給下一個值,再把下一個搏前值賦給當前值,理論上來說沒問題的。但是...............

結果:

錯誤示鏈粗范二:

結果:評分都覆蓋了,變為一組數據了

正確示範一:

結果:

正確示範二(es6解構賦值寫法):

結果:

正確示範三:sort排序(注意這樣是返回的新數組,而不是修改原數組)

返回值是負數,意味著不交換位置,返回值是正數交換位置,0的話,值是相等的,也就不存在交換一說了

結果:

正確示範四:sort排序(注意這樣是返回的新數組,而不是修改原數組)

直接返回a-b的結果,a大於b,即返回正數交換,a小於b,即返回負數不交換,這樣得到的數據是反的,即分數越高,排名越靠後,通過翻轉得到正確的數據

或者返回b-a的結果就是正確的

結果:

如上就是根據需求交換數組數據實現排序的方法。

如有問題基喚清,請指出,接受批評。

㈡ JS中數組重排序方法

1.數組中已存在兩個可直接用來重排序的方法:reverse()和sort()。
reverse()和sort()方法的返回值是經過排序後的數組。reverse()方法會反轉數組項的順序:
var
values=[1,2,3,4,5];
values.reverse();
alert(values);
//5,4,3,2,1
在默認情況下,sort()方法按升序排列數組,sort()方法會調用每個數組項的toString()轉型方法,然後比較得到字元串,確定如何排序。即使數組中的每一項都是數值,sort()方法比較的也是字元串:
var
values
=
[0,1,5,10,15];
values.sort();
alert(values);
//0,1,10,15,5
因此,sort()方法可以接收一個比較函數作為參數。
function
compare(value1,value2){
if
(value1
<
value2){
return
-1;
}else
if
(value1
>
value2){
return
1;
}else{
return
0;
}
}
此比較函數可適用於大多數數據類型,只要將其作為參數傳遞給sort()方法即可:
var
values
=
[0,1,3,7,9,15];
values.sort(compare);
alert(values);
//0,1,3,7,9,15
也可通過比較函數產生降序排序,只需交換函數返回值即可:
function
compare
(value1,
value2){
if
(value1<value2){
return
1;
}else
if
{
return
-1;
}else{
return
0;
}
}
sort()函數的排序條件是:
參數大於0,arr的相鄰兩個元素交換位置;
參數小於0,arr的相鄰兩個元素不交換位置;
參數等於0,arr的相鄰兩個元素大小相等;所以compare自定義函數必須返回一個數值。
2.對於數值類型或者valueOf()方法會返回數值類型的對象類型。
可使用一個更簡單的比較函數。此函數只要第二個值減第一個值即可。
function
compare
(value1,value2){
return
value2
-
value1;
}
以上所述是小編給大家介紹的JS中數組重排序方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

㈢ js排序問題,把正序改成倒序

默認排序應該不是畫面完成的吧?
看看你初始數據的結構 應該是後台排好了
--------------------
多出 /li> 標簽是因為你之前某處標簽沒有閉合造成的
很可能是某處邏輯不對造成標簽沒有正確匹配

㈣ JS Array中的常用方法

在Js Array中的方法大致分為兩類:方法改變原數組 & 方法生成新數組(不改變原數組)

1.push():向原數組的最後一位添加一個元素。返回數組長度
2.unshift():向原數組的最前添加一個元素。返回數慧鉛組長度
3.pop():截取數組中最後一個元素。返回被截取的元素
4.shift():截取數組中第一個元素。返回被截取的元素
以上四個方法可以放在一起記憶,不要被方面名所誤導。陸碧手
5.splice():splice(index, howmany, item1,...itemX) 方法有多個參數可選,常用於分割數組。返回處理後的數組
第一個參數:從第n個元素的下早嫌標開始截取;
第二個參數:從第n個元素的下標開始截取多少個元素;
第三到n個參數:將截取的元素替換為什麼
6.sort():sort(fn) 方法有一個參數可選,用於給數組排序。在不寫參數的情況下會對數組中的元素進行從小到大的順序排序。但不會識別數字(按照數字ACSLL編碼表進行排序)
可選參數:參數返回一個函數,這個函數中有兩個形參 .sort(function(a, b){}) 。形參中的a和b會類冒泡的訪問數組中的元素;例:[1, 2, 3, 4] a b 分別會選擇 1,2、 1,3 、 1,4 、 2,3 、 2,4 、 3,4。當a-b>1時,交換ab的值;當a-b<1時,不動。由此,可在此函數體中寫出自定義的排序規則。返回排序後的數組

7.reverse():倒序排列整個數組。返回數組

1.concat():concat(arr)將兩個數組拼接在一起。返回新數組
2.join():join('str')一個可選參數,返回以一個字元串將數組中的元素拼接成字元串。與str的split('str')方法相反,split()是將字元串以一個字元串拆分成數組。
3.toString():與join()函數不填寫參數一樣,返回一個一 逗號 ,拼接的字元串。
4.slice():選取數組中的第n個元素到第n個元素。返回新數組,也可不寫參數返回數組的副本。
5.indexOf():index(item, start)方法有兩個參數。返回指定元素在數組中的索引值;如果未找到指定元素,返回 -1
第一個參數:指定的元素
第二個參數:從填入的索引開始尋找

㈤ js中數組排序的方法

//Array.prototype.sort()

varfruit=['apples','bananas','Cherries'];
fruit.sort();//['Cherries','apples','bananas'];

varscores=[1,2,10,21];
scores.sort();//[1,10,2,21]

varthings=['word','Word','1Word','2Words'];
things.sort();//['1Word','2Words','Word','word']
//InUnicode,,
//.

㈥ js讓<li>以倒敘排序

直接使用reverse()方法即可,如下:
var arr = [1,2,3];
arr.reverse();
console.log(arr);

㈦ js 怎麼實現數組的倒

var a = [1,2,3,3,4,5,6,7,8,9];function sendNum(arr){ return arr[Math.floor(Math.random()*arr.length)];}sendNum(a);這樣就可以實現每次返回是一個隨機數組中的一個數。主要用的就是random的方法。random方法,是返回回(0,1] 的數,答但取不到1,所以用Math.floor向下取整。

㈧ 使用javascript讓用戶輸入10個數,保存到數組中,然後倒序輸出。

<scripttype="text/javascript">
functiontest(){
varnameArray=newArray();
varname=prompt('請輸入數字','');
while(name!=null&&name!=''&&nameArray.length<10){
nameArray.push(name);
name=prompt('請輸入數字','');
}
nameArray.sort(functioncompareFunction(param1,param2){
returnparam1-param2;
});
for(vari=nameArray.length-1;i>=0;i--){
document.write(nameArray[i]+'<br/>');
}
}
</script>

閱讀全文

與js怎麼讓數組倒序排列相關的資料

熱點內容
maya粒子表達式教程 瀏覽:84
抖音小視頻如何掛app 瀏覽:283
cad怎麼設置替補文件 瀏覽:790
win10啟動文件是空的 瀏覽:397
jk網站有哪些 瀏覽:134
學編程和3d哪個更好 瀏覽:932
win10移動硬碟文件無法打開 瀏覽:385
文件名是亂碼還刪不掉 瀏覽:643
蘋果鍵盤怎麼打開任務管理器 瀏覽:437
手機桌面文件名字大全 瀏覽:334
tplink默認無線密碼是多少 瀏覽:33
ipaddgm文件 瀏覽:99
lua語言編程用哪個平台 瀏覽:272
政采雲如何導出pdf投標文件 瀏覽:529
php獲取postjson數據 瀏覽:551
javatimetask 瀏覽:16
編程的話要什麼證件 瀏覽:94
錢脈通微信多開 瀏覽:878
中學生學編程哪個培訓機構好 瀏覽:852
榮耀路由TV設置文件共享錯誤 瀏覽:525

友情鏈接