相关资讯
本类常用软件
-
福建农村信用社手机银行客户端下载下载量: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"前缀