<!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>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script>
function compareTwo(jsonDate,key,listValue){
var arrPorts = listValue.split('/');
var prevValue = jsonDate.date.split('/');
var prevFirst = prevValue[0].substring(0,prevValue[0].length-1);
var arrPortsFirst = arrPorts[0].substring(0,arrPorts[0].length-1);
if(parseInt(key) == parseInt(jsonDate.index)+1 && prevFirst == arrPortsFirst && prevValue[1] == arrPorts[1] ){
return true;
}
return false;
} function jsonLength(ports){
var length = 0;
for(var key in ports){
length++;
}
return length;
} /*获取字符串*/
function getPortStr(portList){
var prevDate = {index: '',date:''};
var length = 0;
var equTmpStr = '';
var tmpStr = '';
var tmpLength = '';
var preStatus = false;
var length = jsonLength(portList);
alert("length:"+length);
var ingStr = '';
for(var key in portList){
tmpLength++;
var arrPorts = portList[key].split('/');
if('' != prevDate.index){
var comValue = compareTwo(prevDate,key,portList[key]);
if(comValue){ //如果两个数是同类型的
//把现在的连接上以前用-
equTmpStr = prevDate.date+'-'+arrPorts[2];
if(length == tmpLength){
ingStr += equTmpStr+',';
equTmpStr = '';
}
prevDate.index = key;
continue;
}else{
//如果是不同类型的,需要先存起来 alert("key:"+key+" comValue:"+comValue+" equTmpStr: "+equTmpStr);
if('' != equTmpStr){
ingStr += equTmpStr+',';
equTmpStr = '';
}else{
ingStr += prevDate.date+',';
} if(length == tmpLength){
ingStr += portList[key]+',';
}
}
}
prevDate.index = key;
prevDate.date = portList[key];
}
ingStr = ingStr.substring(0,ingStr.length-1);
return ingStr;
} /*整理字符串和命令行显示一致*/
function getStrCollation(portList){
var strPort = getPortStr(portList);
alert("strPort:"+strPort);
var arrPort = strPort.split(',');
var arrTmp = [];
var prevStrPortPartFirst = '';
var prevStrPort = '';
var exportStr = '';
var j=0;
for(var i=0;i<arrPort.length;i++){
var arrPortPart = arrPort[i].split('/');
var strPortPartFirst = arrPortPart[0].substring(0,arrPortPart[0].length-1);
if(i){
if(prevStrPortPartFirst == strPortPartFirst){
arrTmp[j] = arrPort[i].substring(strPortPartFirst.length);
j++;
if(i == arrPort.length-1){
exportStr += arrTmp.join(',');
}
continue;
}else{
if(arrTmp.length){
exportStr += arrTmp.join(',')+' ';
arrTmp = [];
j = 0;
}
if(i == arrPort.length-1){
exportStr += arrPort[i];
}
} }
arrTmp.push(arrPort[i]);
j++;
prevStrPortPartFirst = strPortPartFirst;
}
return exportStr;
} /*使用这个函数的前提是json中的数据按照从小到大的顺序排好*/
function compareList(listSrc,listDes){
var srcLength = jsonLength(listSrc);
var desLength = jsonLength(listDes); if(srcLength != desLength){
return false;
}else{
for(var key in listSrc){
if(listSrc[key] != listDes[key]){
return false;
}
}
}
return true; } window.onload = function(){
var portList = {'1': 'gigaethernet1/1/1','2':'gigaethernet1/2/7','3':'gigaethernet1/2/3','7':'fst1/5/1','8':'fst1/5/2','10':'fst1/6/2','11':'fst1/6/3','12':'fst1/6/4','16':'fst1/9/4','18':'fst1/10/4'};
var portListTset = {'1': 'gigaethernet1/1/1','2':'gigaethernet3/1/7','3':'gigaethernet3/1/3','7':'fst1/5/1','8':'fst1/5/2'};
var arrPort = ['gigaethernet1/1/1','gigaethernet1/1/2'];
var str = 'abcdefg';
//alert(str.substring(2));
alert(getStrCollation(portList));
}; </script>
</head> <body>
</body>
</html>

最新文章

  1. Html游戏开发-画图
  2. Master Nginx(5) - Reverse Proxy Advanced Topics
  3. ios对SQLite3的使用
  4. WCF初步学习
  5. 五张图概括 什么是 ASP 、 ASP.NET (Web Pages,Web Forms ,MVC )
  6. Android L SDK -- 一些有趣的新功能
  7. iOS中的布局
  8. 移动商城第八篇【添加商品之基本属性和大字段数据(FCK文本编辑器)】
  9. ABP .Net Core API和Angular前端APP独立部署跨域问题(No Access-Control-Allow-Origin)
  10. rails应用ajax之一:使用纯js方法
  11. servlet什么时候被实例化?【转】
  12. 0 - Dao层(数据访问层设计)
  13. Ubuntu下开启Mysql远程访问的方法
  14. c# sshnet控制linux 使用unzip的一些问题
  15. Android 使用 SVG 矢量图
  16. Jmeter(八)-发送JDBC请求
  17. #HTTP协议学习# (四)疑问篇
  18. span和input同一行布局的时候,高度偏移解决方案
  19. jQuery入门讲解
  20. 关于C标准

热门文章

  1. HttpClient GET和POST请求
  2. webStrom 运行React-Native项目
  3. ./config\make\make install命令详解
  4. IOC @Autowired/@Resource/@Qulified的用法实例
  5. Nginx笔记总结八:ngx_http_core_module模块中的变量
  6. 数据操作-apply函数族
  7. mongodb配置windows服务启动
  8. BufferedReader中文乱码解决
  9. Python字符串编码——Unicode
  10. 微软手机 能靠Surface Phone卷土重来吗?