用户输入+数组去重

function Input() {
var arr=[];
while (true){
var user=parseInt(prompt("请输入内容:"))
if(!isNaN(user)){
if(user==999){//退出提示功能
var txt=prompt("确定要退出吗?:y/n")
if(txt=="y"){alert(arr);break;} else{continue};
}
arr[arr.length]=user;
}else {
alert("输入错误,系统出错");
var txt=prompt("是否要要重新输入?:y/n")
if(txt=="y"){break;alert(arr)} else{continue};
break;
}
}
// 去重
for(var i=0;i<arr.length;i++){//第一层循环从0开始
for(var k=i+1;k<arr.length;k++){//第二层循环从1开始,没必要从0,
if(arr[i]==arr[k]){//比较前一个数和后一个数是否相等,相等就 i=k
for(var j=k;j<arr.length;j++){//在循环,将相等的那个元素下标给j;
arr[k]=arr[j+1];//将数组元素向前移动一位[k+1],然后赋值给[k]第二次循环得到的下标;
}
k--;//元素向前移动一位,会导致元素有漏掉的没比较。k--.再在原地比较一次。
arr.length--;//因为元素向前移动一位会有空值产生,每次运行去掉后面没用的空值
}
}
}
alert("去重后: "+arr+")
}
posted @ 2021-08-13 13:51  rigorous  阅读(103)  评论(0)    收藏  举报