<script language="javascript" type="text/javascript">
var arr = [ ];
for(i=0;i<6;i++) {
arr[i] = parseInt(Math.random()*10)+1;
check();
}
function check() {
for(j=0;j<arr.length-1;j++) {
if(arr[i]==arr[j]) {
arr[i] = parseInt(Math.random()*10)+1;
j = 0;
continue;
}
}
}
function sortNumber(a,b)
{
return a - b
}
arr.sort(sortNumber);
document.write(arr);
</script>
function check() {
for(j=0;j<arr.length-1;) {
if(arr[i]==arr[j]) {
arr[i] = parseInt(Math.random()*10)+1;
j = 0;
continue;
}else{
++j;
}
}
}
原来的check错在for循环:j++写在for(j=0;j<arr.length-1;j++)里面,它会在设置j=0后把j改为j=1,下次循环就是j=1了,而不是想得j=0
for(j=0;j<arr.length-1;j++) {
if(arr[i]==arr[j]) { // 这里的i 从来源不清楚。
arr[i] = parseInt(Math.random()*10)+1; // 同上
j = 0;
continue;
}
}
}追问
那要怎么修改呢?
求指点啊,跪求了!!
不用另外加check()函数了
var arr = [ ];
for(i=0;i1)//数组里面已经有两个以上变量才进行比较
{
for(int j=0;j<i;j++)
{
if(arr[j]==arr[j-1])
{
arr[j] = parseInt(Math.random()*10)+1;
}
}
}
}