(有误,请勿观看)

一、排名的简单实现

//排名例子1

//需要排名的数组
//var myArray = [5,7, 7, 9, 8, 6, 23];

//新数组
//var thisArray = [];

//将需要排名的数组中元素存入新数组,同时存入原始索引和新索引默认为0
//for (var i = 1; i <= myArray.length; i++) {

// thisArray.push({ myValue: myArray[i - 1], oldIndex: i ,newIndex:0});
//}

//将新数组按照值的大小排序
//thisArray.sort(function (a, b) {
// return b.myValue - a.myValue;
//});

//将排序后顺序存入新索引
//for (var i = 1; i <=thisArray.length; i++) {
// thisArray[i - 1].newIndex = i;
//}

//再根据原始索引排序
//thisArray.sort(function (a, b) {
// return a.oldIndex - b.oldIndex;
//});

//此时获取到的就是排序后的值了,而newIndex就是排名。

//console.log(thisArray);

//如果想单独获取排名可以遍历thisArray.newIndex 存入另一个新的数组

//排名例子2
//var e2 = 20;
//var e3 = 10;
//var e4 = 70;
//var e5 = 20;
//var e6 = 50;
//var arrArray = [];
//for (var i = 2; i <= 6; i++) {
// arrArray.push({ e: window["e" + i], p: i });
//} 
//arrArray.sort(function (a, b) {
// return b.e - a.e;
//});
//for (var i = 0; i < arrArray.length; i++) {
// window["p" + arrArray[i].p] = i + 1;
//}
//console.dir(arrArray);
//console.log(p2);
//console.log(p3);
//console.log(p4);
//console.log(p5);
//console.log(p6);

二、实际数据及效果

三  项目中实现排名列的方法

    //缺点:循环过多且嵌套循环,日后数据量大幅增加时可能导致浏览器卡慢。
//优点:服务器端消耗性能很低。
//改进思路:如何减少循环次数
function myTableSort(data, yearList, regionNameList, myParam) { var mydata = data.concat();
for (var j = 0; j < yearList.length; j++) {
/****************取值********************/
//参数数据
var paramData = [];
//根据年份、参数获取某年某月参数数据
for (var i = 0; i < mydata.length; i++) {
if (mydata[i].Year == yearList[j]) {
//这里可以存入对象类型存入 参数数据、 Year和RegionName,后两者作为排序后赋值时的判断条件
paramData.push({ myValue: mydata[i][myParam], RegionName: mydata[i].RegionName, Year: mydata[i].Year });
}
}
/**************** 处理********************/
//对某年排名后数据
var thisArray = [];
//存入值和原始索引,新索引默认为0
for (var i = 1; i <= paramData.length; i++) { thisArray.push({ myValue: paramData[i - 1].myValue, RegionName: paramData[i - 1].RegionName, Year: paramData[i - 1].Year, oldIndex: i, newIndex: 0 });
}
//根据值排序,
thisArray.sort(function (a, b) {
return b.myValue - a.myValue;
});
//存入排序后的新索引
for (var i = 1; i <= thisArray.length; i++) {
thisArray[i - 1].newIndex = i;
}
//根据原始索引对数组排序
thisArray.sort(function (a, b) {
return a.oldIndex - b.oldIndex;
});
//此时新索引就是排名
//console.log(thisArray);
/**************** 赋值 ********************/
//将当年排名后数据 赋值到mydata
for (var i = 0; i < mydata.length; i++) {
//如果年份相等
if (mydata[i].Year == yearList[j]) {
//城市名称循环赋值单行
for (var k = 0; k < regionNameList.length; k++) {
//如果参数值相等则赋值排名
if (mydata[i].RegionName == thisArray[k].RegionName && mydata[i].Year == thisArray[k].Year && mydata[i][myParam] == thisArray[k].myValue) {
mydata[i].IndexRank = thisArray[k].newIndex;
// console.log("综合指数:" + mydata[i][myParam], "排名:" + thisArray[k].newIndex);
}
}
}
} } return mydata;
}

  

四、数据获取和前期处理:

    function loadChart() {

        $.ajax({
url: '@Url.Action("BasicEvaluationData")',
data: {},
type: "post",
dataType: "json",
success: function (result) {
if (result != undefined && result != null && result.success == true) {
var paramsList = ["UrbanEcologicalIndex", "EcologicalAssetIndex", "EcologicalLandscapeIndex", "EcologicalPressureIndex", "EcologicalConstructionIndex", "EcologicalServiceIndex"];
var regionNameList = [];
var data = [];
var yearList = [];
for (var i = 0; i < result.rows.length; i++) {
var row = result.rows[i];
var rowObj = new Object();
for (var j in row) {
rowObj[j] = row[j];
}
regionNameList.push(rowObj.RegionName);
yearList.push(rowObj.Year);
data.push(rowObj);
}
yearList = Distinct(yearList);
regionNameList = Distinct(regionNameList);
//console.dir(regionNameList);
//console.dir(yearList); myTable(yearList, regionNameList, data, paramsList);
myEcharts(yearList, regionNameList, data, paramsList); }
}
}); }

js实现iview表格 排名列的更多相关文章

  1. JS组件系列——表格组件神器:bootstrap table(三:终结篇,最后的干货福利)

    前言:前面介绍了两篇关于bootstrap table的基础用法,这章我们继续来看看它比较常用的一些功能,来个终结篇吧,毛爷爷告诉我们做事要有始有终~~bootstrap table这东西要想所有功能 ...

  2. 基于 Vue.js 之 iView UI 框架非工程化实践记要

    像我们平日里做惯了 Java 或者 .NET 这种后端程序员,对于前端的认识还常常停留在 jQuery 时代,包括其插件在需要时就引用一下,不需要就删除.故观念使然,尽管 Nuget 和 Maven ...

  3. 基于 Vue.js 之 iView UI 框架非工程化实践记要 使用 Newtonsoft.Json 操作 JSON 字符串 基于.net core实现项目自动编译、并生成nuget包 webpack + vue 在dev和production模式下的小小区别 这样入门asp.net core 之 静态文件 这样入门asp.net core,如何

    基于 Vue.js 之 iView UI 框架非工程化实践记要   像我们平日里做惯了 Java 或者 .NET 这种后端程序员,对于前端的认识还常常停留在 jQuery 时代,包括其插件在需要时就引 ...

  4. JS实现前台表格排序功能

    JS实现前台表格排序功能 虽然数据量不大的情况下,前台排序速度比较快,但一般情况下,我们的项目只使用后台排序,原因有二: 一是代码简单:二是前台JS排序对于有分页的情况无法处理. 前段时间,有个功能需 ...

  5. JS组件系列——表格组件神器:bootstrap table

    前言:之前一直在忙着各种什么效果,殊不知最基础的Bootstrap Table用法都没有涉及,罪过,罪过.今天补起来吧.上午博主由零开始自己从头到尾使用了一遍Bootstrap Table ,遇到不少 ...

  6. JS组件系列——表格组件神器:bootstrap table(二:父子表和行列调序)

    前言:上篇 JS组件系列——表格组件神器:bootstrap table 简单介绍了下Bootstrap Table的基础用法,没想到讨论还挺热烈的.有园友在评论中提到了父子表的用法,今天就结合Boo ...

  7. js创建table表格

    //js创建table表格var tr;var cell;for(var i=0;i<10;i++){ //创建一个tr tr=document.createElement('tr'); doc ...

  8. js导出Excel表格

    js导出Excel表格 直接上代码: 红色部分:如果表格数据中有“1/1”这样的值,会在导出的Excel中转化为日期“1月1日”,所以才加上了红色那两句.如果返回值中没有这样的格式,红色部分可以不写. ...

  9. Table Dragger - 简单的 JS 拖放排序表格插件

    Table Dragger 是一个极简的实现拖放排序的表格插件,纯 JavaScript 库,不依赖 jQuery.用于构建操作方便的拖放排序功能,超级容易设置,有平滑的动画,支持触摸事件. 在线演示 ...

随机推荐

  1. 检查.net dll构建的目标平台是any cpu、x86、x64

    有时候,需要检查构建的dll是否针对正确的平台 可以使用CorFlags.exe(它是.NET Framework SDK的一部分)从dll中查找此信息.运行CorFlags.exe将产生以下输出: ...

  2. C# windform 使用TreeGridView

    1 下载 treeGridView.DLL库文件. 2 添加到工程中. 右键“工具箱”选择“选择项” 弹出对话框 选择“浏览” 选中下载还的dll库文件.完成后工具箱中会有 treeGridView控 ...

  3. 【CS】笔试常见题目

    网络 IP地址分类 常见网络协议 HTTP状态码 算法 排序问题总结 git git和svn的区别 git常用命令 git暂存区,工作区等 一.网络 1. IP地址分类: IP网络使用32位地址,以点 ...

  4. zookeeper的命令使用

    这篇是接着上篇zookeeper集群做的,所以有不熟悉的可以返回看下zookeeper集群的相关内容. 这里是相关的命名行使用方法: 基本命令用法 连接server zkCli.sh -server ...

  5. Caffe 使用记录(一)mnist手写数字识别

    1. 运行它 1. 安装caffe请参考 http://www.cnblogs.com/xuanyuyt/p/5726926.html  此例子在官网 http://caffe.berkeleyvis ...

  6. JS 跨域认识及如何解决

    什么是跨域 指的是浏览器不允许javascrip脚本向其他域名发起ajax请求. 跨域的各种情况判定 URL 说明 是否允许通信 http://www.a.com/a.js http://www.a. ...

  7. info.plist的选项含义

    1.     Application does not run in background(鍵名:UIApplicationExistsOnSuspend)自從iOS4.0之後,當你在應用程式執行的時 ...

  8. [翻译] Trident-ML:基于storm的实时在线机器学习库

    最近在看一些在线机器学习的东西,看到了trident-ml, 觉得比较有意思,就翻译了一下,方便有兴趣的读者学习. 本文为作者(掰棒子熊)翻译自https://github.com/pmerienne ...

  9. VS 插件 Productivity Power Tools - 更改 选项卡组件位置

    Visual Studio 2013怎么把选项卡设置在左侧显示?vs中选项卡默认显示在顶部,但是更习惯显示在左侧,该怎么设置呢?为了更方便使用,下面分享VS2013选项卡设置在左侧显示的图文教程 Vi ...

  10. Excel的合并解析

    相关文件我放到如下链接: http://files.cnblogs.com/files/DreamDrive/Excel%E5%90%88%E5%B9%B6%E8%A7%A3%E6%9E%90.rar ...