代码改变世界

for循环去重排序

2017-10-28 16:57  澄序源  阅读(2180)  评论(0编辑  收藏  举报

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>去重,排序</title>
</head>

<body>
    <div style="width:200px; height:200px; " onclick="dj()">
        1,5,4,47,8,95,6,3,2,10,1,4,7,5,3,6
        1,22,33,44,6,8,9,7,55,8,7,4,6,9
    </div>
    
</body>
</html>
<script>

function dj()
{
    var r=prompt("数组")
    var q=""
    var a=[];
    for(var k=0;k<=r.length+1;k++)
    {    
        if(r[k]!=",")
        {
            q=q+r[k];
            
        }
        if(r[k]==",")
        {
            
            a.push(q);
            q="";
        }
    }
    

    var c=[];//先定义一个空数组
    var h;//定义一个中间值下面排序使用
    
    for(var i=0;i<a.length;i++)   //去重循环
    {    
        var b=0;//声明变量b 放在第一个循环里,要循环一次重新声明一次b为0,否则b变为1不会重置
        for(var e=0;e<a.length;e++)
        {    
            if(a[i]==c[e])//拿a的第i个对比c的所有,并依次循环
            {    
                b=1;//如果有相等的走b=1;
                break;
            }
        }
        if(b==0)//如果上面有相等的会变为1不走本条,不会把值放入数组c中;
        {
            c.push(a[i]);//如果不相等就把数值放入数组c中;
            //给c的最后添加数组a中的第i个
        }
    }
    
    for(var f=0;f<c.length-1;f++)//冒泡排序
    {
        for(var g=0;g<c.length-1;g++)
        {
            if(parseInt(c[g])>parseInt(c[g+1]))//判断第一个数和第二个数谁大;并依次循环对比;
            {
                h=c[g+1];//把前面的数存入中间值中
                c[g+1]=c[g];//把后面的值付给前面的位置
                c[g]=h;//再把中间值赋予后面的位置
            }
        }
    }
    alert(c)//输出去重并排序后的值;
}    
</script>