日期:2014-05-16  浏览次数:20436 次

求用javascript代码实现排序
要实现的功能:

在输入框输入 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>
排序

------解决方案--------------------

<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