免费体验120秒视频_榴莲榴莲榴莲榴莲官网_2021国产麻豆剧果冻传媒入口_一二三四视频社区在线
當前位置:首頁文章首頁 IT學院 IT技術

一個關于JS數組通過手動排序問題的解決方案

作者:  來源:  發布時間:2011-12-11 12:56:09  點擊:

問題實例: 

var arr = new Array(5)
arr[0] = "Jani"
arr[1] = "Hege"
arr[2] = "Stale"
arr[3] = "Kai Jim"
arr[4] = "Borge"

document.write(arr + "<br />")
arr.splice(2,2)
document.write(arr + "<br />")
這段代碼的輸出結果是:
Jani,Hege,Stale,Kai Jim,Borge
Jani,Hege,Borge

同樣是數組的splice()方法,下面這段代碼結果卻不一樣
var Num_1=[];
var Num_2=[];
var num;

for(var i=1;i<50;i++){
Num_1.push(i<10?"0"+i:i);
}
for(var i=0;i<5;i++){
num=Num_1.splice(Math.floor(Math.random()*Num_1.length),1);
Num_2.push(num);
}
document.write("隨機產生的號碼:"+Num_2.sort());

splice(x,y)方法是從索引的x開始刪除y個元素
但是num=Num_1.splice(Math.floor(Math.random()*Num_1.length),1);
這個應該是刪除一個元素 還有49個元素
可是問什么num就是一個數

求解為什么
還有sort()方法是數組排序,我聲明一個數組添加5個數據型元素,然后用sort()方法卻不能排序,需要設置個參數
<script type="text/javascript">

var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"

document.write(arr + "<br />")
document.write(arr.sort())

</script>
這個結果是
10,5,40,25,1000,1
1,10,1000,25,40,5
沒有排序


<script type="text/javascript">

function sortNumber(a,b)
{
return a - b
}

var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5] = "1"

document.write(arr + "<br />")
document.write(arr.sort(sortNumber))

</script>
需要在設置個方法才能排序

而最上面個的那段程序直接用sort()就能排序,沒有參數,為什么 求解?

解決方案:

1. splice是直接操作原數組的,并且返回的不是原數組,而是移除的元素組成的數組。所以你splice(n, 1)返回的當然是只有一個元素的數組。
// [0,1,2].splice(1,1) : [1]

2. sort是可以不用傳遞比較函數的,它會直接使用默認的比較。你的第二段代碼中排序是成功的,1,10,1000,25,40,5,你沒發現它們起始數字是遞增的嗎?因為你push進去的是字符串,它是以字符串比較來排序的("b">"a", "b"<"ba")。同理,第一段代碼你覺得是按數字排序,實際還是按字符串排序的,不信你去掉1位數的"0"前綴

文章評論

軟件按字母排列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
免费体验120秒视频_榴莲榴莲榴莲榴莲官网_2021国产麻豆剧果冻传媒入口_一二三四视频社区在线
主站蜘蛛池模板: 扒下胸罩揉她的乳尖调教| 全部在线播放免费毛片| 亚洲日本韩国在线| 免费在线看污| а√最新版在线天堂| 黄瓜视频在线观看网址| 国产精品igao视频| 精品亚洲一区二区三区在线播放| 最新亚洲人成网站在线观看| 777奇米四色成人影视色区| 国产精品一线二线三线| 日本成人免费在线视频| 无码一区二区三区亚洲人妻| 毛色毛片免费观看| 国产成人无码精品久久久免费| 日韩深夜福利视频| 成人麻豆日韩在无码视频| 69tang在线观看| 欧美一级片免费在线观看| 亚洲国产成人99精品激情在线| 亚洲伊人久久精品影院| 国产女人在线| 香蕉app在线观看免费版| 日韩二三区| 一区二区三区日本视频| 久久亚洲国产精品五月天| 欧美丰满熟妇BBB久久久| 99久久免费国产精精品| 久久精品国产亚洲av麻豆色欲| 风间由美性色一区二区三区| 亚洲欧美日韩国产成人| 天天爽夜夜爽夜夜爽精品视频| 欧美xxxx做受性欧美88| 国产在线精品一区二区不卡麻豆| 亚洲AV无码乱码在线观看富二代| 日本娇小videos精品| 波多野结衣伦理片在线观看| 欧美特黄一片aa大片免费看| 欧美a级完整在线观看| 欧美一级片观看| 久久亚洲国产视频|