问题实例:
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()就能排序,没有参数,为什么 求解?
解决方案: