`

练习题---JS排序

阅读更多
有一个二维表格,表格中的每一列分别有一个列名,表格中的数据为数字类型,要求编写一个程序,能够按照用户指定的列顺序以及每个列的升降序进行排序。
(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>&nbsp;&nbsp;&nbsp;&nbsp;
        
<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基础练习题

    ### JS基础练习题知识点解析 #### 一、选择题知识点详解 **1. 分析代码输出结果** - **代码分析**: 这段代码初始化了一个数组`arr`,然后使用一个循环来累加数组中的所有元素(除了第一个元素)。变量`sum`用来...

    《分与合》习题---第三课时.pdf

    标题“《分与合》习题---第三课时.pdf”和描述“《分与合》习题---第三课时.pdf”均指向某种教育材料中的习题部分,并未明确表达出特定的IT专业内容。此外,【部分内容】给出的一串数字和括号内的数字序列,以及被...

    javascript 对象操作作业题

    ### JavaScript对象操作作业题解析 #### 题目一:创建div并设置innerHTML值 1. **创建一个div元素**: - 使用`document.createElement('div')`创建一个新的div元素。 2. **设置div的innerHTML属性**: - 通过`....

    前端练习题前端练习题前端练习题周考.docx

    数组的排序可以使用 sort() 方法,但数组的排序规则是根据字符串的 Unicode 码点顺序排序的。 本文总结了前端开发中的基本知识点,涵盖了事件对象、JavaScript 语言基础、HTML 事件、日期对象、正则表达式、字符串...

    MongoDB查询练习题及答案

    在本题中,我们将探讨 MongoDB 的查询操作,基于提供的 `user1` 和 `user2` 文档进行练习。 首先,让我们熟悉一下 `db.users.drop()` 命令。这个命令用于删除集合 `users`,如果存在的话。在 MongoDB 中,集合是...

    《计算机应用基础》各章课后习题-有答案-.docx

    习题可能要求学生进行数据的导入导出、排序筛选、计算分析,以及使用图表来可视化数据。对于Excel,可能涉及函数的应用,如SUM、AVERAGE、IF等,以及数据透视表的使用。 五、计算机硬件与软件 这部分习题可能涉及...

    Python练习题20道

    练习题可能涉及列表和元组的操作,如添加元素、删除元素、排序或使用列表推导式。 **5. 字典与集合** 字典(dict)是键值对的集合,提供高效的数据查找。集合(set)是不重复元素的无序集合。在练习中,你可能会...

    1-5章(练习题).rar

    《1-5章(练习题)》这个压缩包文件包含了前五章的练习题目,旨在帮助学习者巩固和深化对IT基础知识的理解。由于没有具体的标签信息,我们可以假设这些练习题覆盖了计算机科学与信息技术的基础领域,如编程语言、...

    猜单词leetcode-algorithm:前端算法练习(JavaScript)

    【JavaScript】算法练习 项目说明 本项目记录个人平时练习各类型的算法题解题思路及解题源码,希望对各位有所帮助 目录结构 |- src // 资源文件夹 |- |- 二叉树相关算法 |- |- 基础算法题库 |- |- |- 猜数字游戏.js ...

    Python 编程练习题、竞赛题、面试题和实战项目题.pdf

    本篇文档涵盖了Python编程中一系列重要的练习题、竞赛题、面试题以及实战项目题,旨在全面提高学习者的编程技能、算法理解能力及实际项目开发经验。下面,我们将对文档中提到的部分核心知识点进行详细解析。 #### ...

    js交换排序 冒泡排序算法(Javascript版)

    由于其简洁易懂,冒泡排序常被用作编程入门的练习题,同时也因为其效率较低,所以在实际应用中较少使用。 冒泡排序在JavaScript中的实现通常涉及到嵌套循环,内层循环负责两两比较相邻元素,并在必要时进行交换操作...

    练习题代码

    在IT行业中,编程练习题是提升技能和理解各种编程概念的重要途径。"练习题代码"这一标题暗示我们这里包含的是一些用于练习编程技巧的源代码。这些代码可能涵盖多种编程语言,例如Java、Python、C++或JavaScript,...

    前端面试题-手写代码实现

    3. **算法题.js**:这个文件很可能包含了各种算法实现,比如排序算法(冒泡排序、快速排序、归并排序等)、查找算法(线性查找、二分查找等)、图论问题(最短路径、拓扑排序等),以及数据结构的实现,如栈、队列、...

    韩顺平PHP JS JQUERY 所有视频下载种子 货真价实

    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属性操作 获取子元素和...

    50道java编程练习题.doc

    【Java编程练习题知识点】 ...这些练习题涵盖了Java编程的基础概念,如循环、逻辑判断、字符串处理、数组操作、数学问题解决、排序算法、递归以及条件运算等。它们是提升编程技能和解决问题能力的有效途径。

    JavaScript基础练习_day9

    - **标签**: “JavaScript”、“web前端”、“js基础练习题”,明确了本练习的主要面向对象为前端开发者,并且聚焦于JavaScript语言的学习。 #### 二、具体知识点解析 **知识点1:数组长度与索引操作** - **题目*...

    冒泡排序算法及其JavaScript实现详解.pdf

    项目实践:在小型项目或练习中,需要对少量数据进行排序时,可以快速实现冒泡排序。 面试准备:作为常见的算法题目之一,掌握冒泡排序有助于应对技术面试中的算法题。 学习资源:作为自学材料,帮助读者通过具体...

    这是一份很合适初学者的Java练习题

    本练习题集覆盖了这些关键领域,不仅包括了语言核心概念,还融入了一些经典的思维题目,旨在锻炼你的逻辑思维和问题解决能力。 首先,Java基础语法是学习的起点。这包括变量声明、数据类型(如整型、浮点型、字符串...

    (全)传智播客PHP就业班视频完整课程

    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属性操作 获取子元素和...

Global site tag (gtag.js) - Google Analytics