有一个二维表格,表格中的每一列分别有一个列名,表格中的数据为数字类型,要求编写一个程序,能够按照用户指定的列顺序以及每个列的升降序进行排序。
(1)
语言不限
(2)
表格中的列数目不限(1-n
)
(3)
排序的列数目不限(0-n
)
(4)
变量的命名和使用要符合学习的内容
例如:
Id Age Score1 Score2 Score3
1 20 45 56 67
3 33 12 98 100
…..
7 77 33 12 91
用户可以指定按照Age(升序),Score2(降序)的顺序对数据进行排序。
代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style type="text/css">
body {}{ font-size:1em;}
div,h1,h3 {}{ text-align : center; }
td.head {}{ width:120px;background-color:#dddddd;font-weight:bold;}
td.data {}{ width:120px;background-color:#eeeeee;}
</style>
<script type="text/javascript" language="Javascript">
// 二维数字数组
var clmArr = new Array();
clmArr=[ [1,5,456,6,89], [2,51,515,32,15],[3,45,68,24,6] ];
// 要根据排序的列
var orderByTheObject = 0;
// 排序方式
var orderByTheOrder = 1;
// 排序函数
function arrSort(arrA,arrB){
if (orderByTheOrder == "asc") {
return arrA[orderByTheObject]-arrB[orderByTheObject];
} else if (orderByTheOrder == "desc")
{
return arrB[orderByTheObject]-arrA[orderByTheObject];
}
}
// 画表格,输出二维数组
function writeTable(){
var outString = "<table>";
for(var i=0; i<clmArr.length; i++)
{
outString += "<tr><td class='data'>"+ clmArr[i].join("</td><td class='data'>") +"</td></tr>";
}
outString += "</table>";
document.getElementById("data").innerHTML = outString;
}
// 改变排序方式
function displayChange(){
orderByTheObject = document.getElementById("clmName").value;
orderByTheOrder = document.getElementById("order").value;
clmArr.sort(arrSort);
writeTable();
}
</script>
</head>
<body scroll="no" onload="writeTable()">
<h1>YW5_Test02</h1>
<hr>
<h3>Order By :</h3>
<div id="slct">
<select name="clmName" onchange="displayChange()">
<option value="0">Id</option>
<option value="1">Age</option>
<option value="2">Score1</option>
<option value="3">Score2</option>
<option value="4">Score3</option>
</select>
<select name="order" onchange="displayChange()">
<option value="asc">asc</option>
<option value="desc">desc</option>
</select>
</div>
<br>
<br>
<div id="head">
<table>
<tr>
<td class="head">Id</td>
<td class="head">Age</td>
<td class="head">Score1</td>
<td class="head">Score2</td>
<td class="head">Score3</td>
</tr>
</table>
</div>
<div id="data">
<span></span>
</div>
</body>
</html>
这样的代码似乎有些格路。但还是让我学到了些东西。
用Comparator这个接口来做应该更标准一些,有时间再试试吧。
分享到:
相关推荐
### JS基础练习题知识点解析 #### 一、选择题知识点详解 **1. 分析代码输出结果** - **代码分析**: 这段代码初始化了一个数组`arr`,然后使用一个循环来累加数组中的所有元素(除了第一个元素)。变量`sum`用来...
标题“《分与合》习题---第三课时.pdf”和描述“《分与合》习题---第三课时.pdf”均指向某种教育材料中的习题部分,并未明确表达出特定的IT专业内容。此外,【部分内容】给出的一串数字和括号内的数字序列,以及被...
### JavaScript对象操作作业题解析 #### 题目一:创建div并设置innerHTML值 1. **创建一个div元素**: - 使用`document.createElement('div')`创建一个新的div元素。 2. **设置div的innerHTML属性**: - 通过`....
数组的排序可以使用 sort() 方法,但数组的排序规则是根据字符串的 Unicode 码点顺序排序的。 本文总结了前端开发中的基本知识点,涵盖了事件对象、JavaScript 语言基础、HTML 事件、日期对象、正则表达式、字符串...
在本题中,我们将探讨 MongoDB 的查询操作,基于提供的 `user1` 和 `user2` 文档进行练习。 首先,让我们熟悉一下 `db.users.drop()` 命令。这个命令用于删除集合 `users`,如果存在的话。在 MongoDB 中,集合是...
习题可能要求学生进行数据的导入导出、排序筛选、计算分析,以及使用图表来可视化数据。对于Excel,可能涉及函数的应用,如SUM、AVERAGE、IF等,以及数据透视表的使用。 五、计算机硬件与软件 这部分习题可能涉及...
练习题可能涉及列表和元组的操作,如添加元素、删除元素、排序或使用列表推导式。 **5. 字典与集合** 字典(dict)是键值对的集合,提供高效的数据查找。集合(set)是不重复元素的无序集合。在练习中,你可能会...
《1-5章(练习题)》这个压缩包文件包含了前五章的练习题目,旨在帮助学习者巩固和深化对IT基础知识的理解。由于没有具体的标签信息,我们可以假设这些练习题覆盖了计算机科学与信息技术的基础领域,如编程语言、...
【JavaScript】算法练习 项目说明 本项目记录个人平时练习各类型的算法题解题思路及解题源码,希望对各位有所帮助 目录结构 |- src // 资源文件夹 |- |- 二叉树相关算法 |- |- 基础算法题库 |- |- |- 猜数字游戏.js ...
本篇文档涵盖了Python编程中一系列重要的练习题、竞赛题、面试题以及实战项目题,旨在全面提高学习者的编程技能、算法理解能力及实际项目开发经验。下面,我们将对文档中提到的部分核心知识点进行详细解析。 #### ...
由于其简洁易懂,冒泡排序常被用作编程入门的练习题,同时也因为其效率较低,所以在实际应用中较少使用。 冒泡排序在JavaScript中的实现通常涉及到嵌套循环,内层循环负责两两比较相邻元素,并在必要时进行交换操作...
在IT行业中,编程练习题是提升技能和理解各种编程概念的重要途径。"练习题代码"这一标题暗示我们这里包含的是一些用于练习编程技巧的源代码。这些代码可能涵盖多种编程语言,例如Java、Python、C++或JavaScript,...
3. **算法题.js**:这个文件很可能包含了各种算法实现,比如排序算法(冒泡排序、快速排序、归并排序等)、查找算法(线性查找、二分查找等)、图论问题(最短路径、拓扑排序等),以及数据结构的实现,如栈、队列、...
10-26 4 jquery对象集合遍历的四种形式及练习题讲解 jquery的dom操作 10-27 1课程回顾 10-27 2 jquery的dom操作 内部插入 外部插入 10-27 3 jquery节点操作 10-27 4 练习题讲解 10-27 5 jquery属性操作 获取子元素和...
【Java编程练习题知识点】 ...这些练习题涵盖了Java编程的基础概念,如循环、逻辑判断、字符串处理、数组操作、数学问题解决、排序算法、递归以及条件运算等。它们是提升编程技能和解决问题能力的有效途径。
- **标签**: “JavaScript”、“web前端”、“js基础练习题”,明确了本练习的主要面向对象为前端开发者,并且聚焦于JavaScript语言的学习。 #### 二、具体知识点解析 **知识点1:数组长度与索引操作** - **题目*...
项目实践:在小型项目或练习中,需要对少量数据进行排序时,可以快速实现冒泡排序。 面试准备:作为常见的算法题目之一,掌握冒泡排序有助于应对技术面试中的算法题。 学习资源:作为自学材料,帮助读者通过具体...
本练习题集覆盖了这些关键领域,不仅包括了语言核心概念,还融入了一些经典的思维题目,旨在锻炼你的逻辑思维和问题解决能力。 首先,Java基础语法是学习的起点。这包括变量声明、数据类型(如整型、浮点型、字符串...
10-26 4 jquery对象集合遍历的四种形式及练习题讲解 jquery的dom操作 10-27 1课程回顾 10-27 2 jquery的dom操作 内部插入 外部插入 10-27 3 jquery节点操作 10-27 4 练习题讲解 10-27 5 jquery属性操作 获取子元素和...