相關資訊
本類常用軟件
-
福建農村信用社手機銀行客戶端下載下載量:584204
-
Windows優化大師下載量:416898
-
90美女秀(視頻聊天軟件)下載量:366961
-
廣西農村信用社手機銀行客戶端下載下載量:365699
-
快播手機版下載量:325855
問題實例:
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()就能排序,沒有參數,為什么 求解?
解決方案:
// [0,1,2].splice(1,1) : [1]
2. sort是可以不用傳遞比較函數的,它會直接使用默認的比較。你的第二段代碼中排序是成功的,1,10,1000,25,40,5,你沒發現它們起始數字是遞增的嗎?因為你push進去的是字符串,它是以字符串比較來排序的("b">"a", "b"<"ba")。同理,第一段代碼你覺得是按數字排序,實際還是按字符串排序的,不信你去掉1位數的"0"前綴