要实现的功能:在输入框输入 01 02 12 20 这样的两位数字按“排序”按钮对数字进行如下计算:(比如输入:01 02 03 04 05 06)02-01 03-01 03-02 04-01 04-02 04-03 05-01 05-02 05-03 05-04 06-01 06-02 06-03 06-04 06-05执行完上面的方法后会得到15个数字结果把上面的结果显示在另一个输入框内 按数字大小排序 并且去掉重复的数字按“相同”按钮得到这15个数字钟相同的数字并显示在输入框内按“复制”按钮复制结果到剪切板上要求:输出的结果 按数字大小排序 而且数字格式是 01 02 03 04 这样的两位数字举例说明:
比如上面数字运算的结果: 01 02 01 03 02 01 04 03 02 01 05 04 03 02 01
按“排序”要去掉15个数字中多余相同的:01 02 03 04 05
按“相同”显示15个数字中相同的:01 02 03 04
 
基础代码:<!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>
<style type="text/css">
</style>
<script>

</script>
</head>
<body></br>
<form>
<table border=1>
<input type="hidden"  id="numId" size=75>
<tr><td>输入数字: <input type="text" id="" size=75>
<input type="button" value="清除" onclick="" />
</td></tr>
<tr><td>排序结果: <input type="text" disabled id="" size=75>
<input type="button" value="清除" onclick="" />
</td></tr>
<tr>
<td align=center>
<input type="button" value="相同" onclick="">
<input type="button" value="排序" onclick="">
<input type="button" value="复制" onclick="">
</td>
</tr>
</table>
</form>
</body>
排序

解决方案 »

  1.   

    <!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>
    <script type="text/javascript">
    var a=['01','02','03','05','04'];
    function sorts(){
    a=a.sort();
    document.getElementById("test").innerHTML=a;
    }
    function same(){
    var ax=[];
    for(var i=a.length-1;i>=0;i--){
    for(var j=i-1;j>=0;j--){
    var x=a[i]-a[j];
    ax[x]=x;
    }
    }
    ax=ax.sort();
    document.getElementById("test").innerHTML=ax;
    }
    </script>
    </head><body>
    <input type="button" onclick="sorts()" value="排序">
    <input type="button" onclick="same()" value="找出不同">
    <div id="test"></div>
    </body>
    </html>类似这样试试
      

  2.   


    <input type="text" id="txtInput" /><br />
    <button type="button" id="btnSort">排序</button>
    <button type="button" id="btnRepeat">取有重复的</button>
    <script type="text/javascript">
        function getData(){
             var value = document.getElementById("txtInput").value;
             value = value.replace(/^\s+|\s+$/g,"").replace(/\s{2,}/g," ");
             return value.split(" ");
        }
        function sort(){
                     return getData().sort();
        }
        function getRepeat(){
            var arr = sort();
            var dic = {},repeat = [],value;
            for(var i=1;i<arr.length;i++){
        for(var j=0;j<i;j++){
            value = arr[i] - arr[j];
    dic[value] = value;
        }
            }
    for(var v in dic){
        for(var i=0;i<arr.length;i++){
    if(v == Number(arr[i])){
        repeat.push(arr[i]);
    }
        }
    }
    return repeat;
        }
        var btnSort = document.getElementById("btnSort"),
    btnRepeat = document.getElementById("btnRepeat");
    btnSort.onclick = function(){
        var arr = sort();
        alert(arr.join(","));
    }
    btnRepeat.onclick = function(){
        var repeat = getRepeat();
        alert(repeat.join(","));
    }
    </script>
      

  3.   


    <HTML>
     <HEAD>
      <TITLE> 排序 </TITLE>
     </HEAD> <BODY>
    <INPUT TYPE="text" id="inp" value="01 02 03 04 05 06">
    <input type="button" onclick="count(inp)" value="执行">
    <BR>
    排序:<span id="div_sort"></span>
    <BR>
    相同:<span id="div_same"></span><script type="text/javascript">
    var rst, sort_rst, same_rst;function count(obj){
    //检查输入数据是否为两组或以上的2位数字
    var reg = /^\d{2}(\s\d{2})+$/;
    if ( !reg.test(obj.value) ) {
    alert("请检查输入数据!");
    obj.select();
    return;
    }
    //定义
    rst =  new Array();
    sort_rst =  new Array();
    same_rst = new Array();
    var member = obj.value.split(" ");
    //计算
    for (var i=1; i<member.length; i++) for (var j=0; j<i; j++) rst[rst.length] = parseInt(member[i], 10) - parseInt(member[j], 10);
    //alert(rst);
    //组织排序数据和相同数据的数组
    for (var i=0; i<rst.length; i++)
    {
    if (!(rst[i] in sort_rst)) sort_rst[sort_rst.length] = rst[i];
    else if (!(rst[i] in same_rst)) same_rst[same_rst.length] = rst[i];
    }
    //两个数组中数据不足两位补“0”(负数未处理)
    for (var i=0; i<sort_rst.length; i++) {
    if (sort_rst[i]>=0 && sort_rst[i]<10) sort_rst[i] = "0" + sort_rst[i].toString(); 
    else sort_rst[i] = sort_rst[i].toString();
    }
    for (var i=0; i<same_rst.length; i++)  {
    if (same_rst[i]>=0 && same_rst[i]<10) same_rst[i] = "0" + same_rst[i].toString(); 
    else same_rst[i] = same_rst[i].toString();
    }
    //显示排序后并用空格分隔的数字
    document.getElementById("div_sort").innerHTML = sort_rst.sort().join(" ");
    document.getElementById("div_same").innerHTML = same_rst.sort().join(" ");
    }
    </script> </BODY>
    </HTML>
      

  4.   

    非常感谢 zyzy15 的回复
    正是我需要的结果啊