这几天,编写了一个根据传入数据对象,生成table列表的javascript方法,其实会涉及到对table的排序,在此记录一下实现过程。
首先,将整个table分为表头,表体、表尾三个部份,其中表头为列表的字段名,表体为这个table的实际内容数据,然后表尾为一些分页的标志(上下页等)。同时把这三个部份,分别存往放在三个不同的javascript变量中。当然这些javascript变量均为对象,分别以table的id为索引搜索各自的table表头、表体、表尾内容。
其次,将表体中的每一行即:tr存放在一个变量数组T中。
然后,将待排序的字段列数据也存放在一个数组A中,同时生成一个对应的键值对象B,键为待排序字段的每一个cell的内容,值为cell对应行的序号。
最后,将分别用三个数组统计数组A中的内容是数值或字符还是汉字,依次存储的数组为numArr(数值)、abcArr(字符)、worArr(汉字),再分别利用javascript的方法sort对数值用numArr = numArr.sort(function(a,b){return a-b;});对字符用abcArr= numArr.sort();
对汉字用worArr= worArr.sort(function(a,b){return a.localeCompare(b);});(拼音顺序)进行排序,分别排序完成后,再将这三个数组合并到A数组中,在重新生成整个table,此时table的表头,和表尾我的照搬过来,只是表体的内容,我们需要遍历数组T生成,遍历的顺序为排序好的A数组中值对应在B对象中的序号,根据序号再去T数组中一个一个的取出tr字符串进行表体的生成。
至此,我们可以用表头+表体(已排序)+表尾的形式将table重绘,实现排序。
分享到:
相关推荐
第二种方式交第一种而言在处理复杂数据时更为灵活,一般使用第二种方式来进行table数据填充。 [js] view plain copy $(function () { //1.初始化Table var oTable = new TableInit(); oTable.Init(); /...
jsSort v0.0.5 jsSort是一种通用的排序方法,可以通过多个属性对对象数组进行排序。概述jsSort的公共API归结为一个名为sortByMultiple的方法。 此方法采用两个参数,每个参数都是数组。 sequence :要排序的数组。 ...
ADF中最常用的Table组件af:table具有非常多的内置功能,如排序、过滤、切换列位置,以及通过滚动条来实现的分页。默认情况下,通过滚动条,af:...实现这些需求,可以有多种途径,本文会介绍一种实现方式供大家参考。
//这里将使用已经定义的一种默认触发方式. ■ 其中"bodys"为表格的id(可为object或string) -- 根据你的表格ID而改变 ■ 其中"tag"为每列头td的class名 >对于有兴趣扩展的朋友: 本类将提供一个可扩展的模式,...
是基于tableview拖动换行,排序重新继承uitableview写的带有动画的一种效果,是iOS中最常用到的上下拖动的控间
vxe-table是一个基于vue的表格组件,支持增删改查、虚拟滚动、懒加载、快捷菜单、数据校验、树形结构、打印导出、表单渲染、数据分页、模态窗口、自定义模板、灵活的配置项、丰富的扩展插件等...设计理念:面向现代...
lua的表是一种很强大的类型,灵活好用,但是简单的一维表好排序,那么多维的呢?请参考源码的测试案例
是一种快速的前端构建工具,其中包括热模块重载(HMR),优化的构建以及TypeScript支持等功能。 结合使用这两种方法是构建Web应用程序的最快方法之一。 入门 命中奔跑 编辑并观看它的实时更新! 默认情况下,Repl...
SiTable for AngularJS SiTable是Angular的一种小型,简单,干净且非侵入式的表指令。 它假定使用某些ng-repeat指令显示表数据,并且不使用污染范围的“配置对象”来创建其功能,该功能包括: 分页:对表进行分页,...
首先,我们从官方文档中ctrl+c出一个排序栗子,放在我们的组件中。 官方栗子 import React, { useEffect, useState } from 'react'; import { Table } from 'antd' export default () => { const [data, setData] ...
方法一:如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数 truncate table 表名 方法二:dbcc checkident (‘table_name’, reseed, new_reseed_value) 当前值设置为 new_reseed_...
sql 语句就是对数据库进行操作的一种语言。 常见语句 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ (所有包含‘value1’这个模式的字符串) ...
方案一: 代码如下:SELECT * FROM `table` ORDER BY RAND() LIMIT 0,1;这种方法的问题就是非常慢。原因是因为MySQL会创建一张零时表来保存所有的结果集,然后给每个结果一个随机索引,然后再排序并返回。有几个方法...
在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值得集合和相应的指向表中物理标识这些值得数据页的逻辑指针清单。索引的作用相当于图书的...
Laravel位置▲介绍 :vulcan_salute: 该软件包提供了一种获取应用程序可能需要的国家,城市和州(尤其是下拉菜单)的简单方法。第一步-通过Composer安装 :musical_score: 通过composer将该包引入您的项目composer ...
4.下面哪种排序法对12354最快 a quick sort b.buble sort c.merge sort 5.哪种结构,平均来讲,获取一个值最快 a. binary tree b. hash table c. stack 6.一个二叉树的三种遍历方法的输出结果 7.链表按...
indexing_table.R 是一种脚本设计,用于根据索引矩阵准备索引表(例如,用于照明排序)。 使用自定义设计索引准备扩增子文库时特别有用。 输入文件: 一张或多张工作表的Excel文件( .xls或.xlsx )。 索引矩阵的...
第一种:alter table 表名 modify 需修改的列名 修改后的属性; 第二种:alter table 表名 change 需要修改的列名 修改后的列信息; 例如,表名:pet 属性:weight 改变weight的类型: alter table pet change ...
化学性质落入最重要的科学的数量,是学校主要对象之一。 它的研究始于周期 表-门捷列夫表。交互式的培训材料比经典方法更有效。在这种技术中,使用了成为现代学生家庭的技术。...-可以按十种类别对元素进行排序: