JavaScript按IP地址排序
JavaScript按IP地址列表排序,主要思路就是分割每个点号部分,然后ip1和ip2分别对不够三位数的进行补0操作,然后转换为数字类型进行一一比较。
上代码:
正序:
var arr=[
{ip:"10.20.39.12"},
{ip:"43.120.39.11"},
{ip:"25.210.39.21"},
{ip:"75.110.39.131"},
{ip:"12.230.139.14"},
{ip:"17.20.39.121"},
{ip:"11.220.139.111"},
{ip:"172.30.39.131"},
{ip:"190.10.139.123"},
{ip:"170.20.4.222"}
] console.log(IpSortForward(arr,"ip")); //正序
function IpSortForward(data, p) {
for (i = 0; i < data.length - 1; i++) {
for (j = 0; j < data.length - 1 - i; j++) {
var arr1 = data[j][p].split("."), arr2 = data[j + 1][p].split(".");
if (arr1[0].length == 2) {
var t = arr1[0]+"0";
arr1[0] = t;
}else if(arr1[0].length == 1){
var t = arr1[0]+"00";
arr1[0] = t;
}else{} if (arr1[1].length == 2) {
var t = arr1[1]+"0";
arr1[1] = t;
}else if(arr1[1].length == 1){
var t = arr1[1]+"00";
arr1[1] = t;
}else{} if (arr1[2].length == 2) {
var t = arr1[2]+"0";
arr1[2] = t;
}else if(arr1[2].length == 1){
var t = arr1[2]+"00";
arr1[2] = t;
}else{} if (arr1[3].length == 2) {
var t = arr1[3]+"0";
arr1[3] = t;
}else if(arr1[3].length == 1){
var t = arr1[3]+"00";
arr1[3] = t;
}else{} if (arr2[0].length == 2) {
var t = arr2[0]+"0";
arr2[0] = t;
}else if(arr1[0].length == 1){
var t = arr2[0]+"00";
arr2[0] = t;
}else{} if (arr2[1].length == 2) {
var t = arr2[1]+"0";
arr2[1] = t;
}else if(arr2[1].length == 1){
var t = arr2[1]+"00";
arr2[1] = t;
}else{} if (arr2[2].length == 2) {
var t = arr2[2]+"0";
arr2[2] = t;
}else if(arr2[2].length == 1){
var t = arr2[2]+"00";
arr2[2] = t;
}else{} if (arr2[3].length == 2) {
var t = arr2[3]+"0";
arr2[3] = t;
}else if(arr2[3].length == 1){
var t = arr2[3]+"00";
arr2[3] = t;
}else{} var param1=arr1[0]+arr1[1]+arr1[2]+arr1[3];
var param2=arr2[0]+arr2[1]+arr2[2]+arr2[3]; if (parseInt(param1) > parseFloat(param2)) {
var temp = data[j];
data[j] = data[j + 1];
data[j + 1] = temp;
}
}
}
return data;
}
反序:
var arr=[
{ip:"10.20.39.12"},
{ip:"43.120.39.11"},
{ip:"25.210.39.21"},
{ip:"75.110.39.131"},
{ip:"12.230.139.14"},
{ip:"17.20.39.121"},
{ip:"11.220.139.111"},
{ip:"172.30.39.131"},
{ip:"190.10.139.123"},
{ip:"170.20.4.222"}
] console.log(IpSortForward(arr,"ip")); //反序
function IpSortReverse(data, p) {
for (i = 0; i < data.length - 1; i++) {
for (j = 0; j < data.length - 1 - i; j++) {
var arr1 = data[j][p].split("."), arr2 = data[j + 1][p].split(".");
if (arr1[0].length == 2) {
var t = arr1[0]+"0";
arr1[0] = t;
}else if(arr1[0].length == 1){
var t = arr1[0]+"00";
arr1[0] = t;
}else{} if (arr1[1].length == 2) {
var t = arr1[1]+"0";
arr1[1] = t;
}else if(arr1[1].length == 1){
var t = arr1[1]+"00";
arr1[1] = t;
}else{} if (arr1[2].length == 2) {
var t = arr1[2]+"0";
arr1[2] = t;
}else if(arr1[2].length == 1){
var t = arr1[2]+"00";
arr1[2] = t;
}else{} if (arr1[3].length == 2) {
var t = arr1[3]+"0";
arr1[3] = t;
}else if(arr1[3].length == 1){
var t = arr1[3]+"00";
arr1[3] = t;
}else{} if (arr2[0].length == 2) {
var t = arr2[0]+"0";
arr2[0] = t;
}else if(arr1[0].length == 1){
var t = arr2[0]+"00";
arr2[0] = t;
}else{} if (arr2[1].length == 2) {
var t = arr2[1]+"0";
arr2[1] = t;
}else if(arr2[1].length == 1){
var t = arr2[1]+"00";
arr2[1] = t;
}else{} if (arr2[2].length == 2) {
var t = arr2[2]+"0";
arr2[2] = t;
}else if(arr2[2].length == 1){
var t = arr2[2]+"00";
arr2[2] = t;
}else{} if (arr2[3].length == 2) {
var t = arr2[3]+"0";
arr2[3] = t;
}else if(arr2[3].length == 1){
var t = arr2[3]+"00";
arr2[3] = t;
}else{} var param1=arr1[0]+arr1[1]+arr1[2]+arr1[3];
var param2=arr2[0]+arr2[1]+arr2[2]+arr2[3]; if (parseInt(param1) < parseFloat(param2)) {
var temp = data[j];
data[j] = data[j + 1];
data[j + 1] = temp;
}
}
}
return data;
}
这是其他排序的方法,欢迎查看,欢迎给意见!
JavaScript按IP地址排序的更多相关文章
- python对ip地址排序、对列表进行去重
一:使用python对ip地址排序所用代码示例一: import socket iplist = ['10.5.11.1','192.168.1.33','10.5.2.4','10.5.1.3',' ...
- javascript把IP地址转为数值几种方案,来挑战一下效率吧
先看看什么是IP地址: IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节).IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~25 ...
- JavaScript实现IP地址的输入框方式
最近遇到一些这样的需求:实现一种IP地址的输入方式,就是输入3个字符或自动跳到下一个输入框内,删除的时候,一个输入框没有了字符,自动跳回上一个输入框.看到这里,相信大家都有一些想法了,没错,这种方法就 ...
- Excel中IP地址排序
思路 将IP地址按"."分隔,提取"."之间的每个数,然后根据提取出的列从左至右进行主要字段及次要字段排序 公式说明 返回一个字符串在另一个字符串中出现的起始位 ...
- JavaScript按纯数字排序
直接上代码: var arr=[ {name:"张散步",age:"23",sports:"篮球",number:"23112 ...
- js获取IP地址方法总结_转
js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338.html 1,js取得IP地址 ...
- js获取IP地址多种方法实例教程
js获取IP地址方法总结 js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338. ...
- js获取IP地址方法总结
js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338.html 1,js取得IP地址 ...
- java正则表达式小练习(IP地址检测、排序,叠词的处理,邮件地址的获取)
import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; import java.util.reg ...
随机推荐
- Jenkins和gitlab集成自动构建
Jenkins安装插件 Jenkins上需要安装如下插件 Gitlab Hook Plugin,GitLab Plugin Job配置 在需要自动触发的Job中 选择Build Triggers进行如 ...
- Thread-方法以及wait、notify简介
Thread.sleep()1.静态方法是定义在Thread类中.2.Thread.sleep()方法用来暂停当前执行的线程,将CPU使用权释放给线程调度器,但不释放锁(也就是说如果有synchron ...
- WebSocket connection to 'ws://xx:9502/' failed:Error in connection establishment:net::ERR_CONNECTION_TIMED_OUT
1.首先看能否ping通服务器 2.telnet xx 9502之后能不能连通 3.如果连不通有可能是防火墙的问题 可以试试清空防火墙规则,或者关闭防火墙 iptables -F
- Build step 'Execute shell' marked build as failure解决
今天jenkins构建时运行脚本报错如下: Build step 'Execute shell' marked build as failure 脚本没问题后来看了下原因是磁盘空间不足导致报错,清除下 ...
- Djang--module--单表
Django模型层 一 ORM简介 查询数据层次图解:如果操作mysql,ORM是在pymysq之上又进行了一层封装
- C#开源项目大全
C#开源项目大全 商业协作和项目管理平台-TeamLab 网络视频会议软件-VMukti 驰骋工作流程引擎-ccflow [免费]正则表达式测试工具-Regex-Tester Windows-Ph ...
- win32编程简介
win32编程简介 复习Win32整理下知识. 为什么学习win32? 我们要编写windos程序.都离不开API. 也就是我们所说的win32程序. 所以学好win32是你能不能再windows下编 ...
- 【详解】换一个角度看Socket的数据读写
前言 以前对IO.NIO还算了解,也写过Netty的项目.但是对底层的数据传递不是很了解,一直存有这方面的疑惑.但是由于有其他事情就被打断了.前阵子因为想要了解volatile关键字的原理,学习了下J ...
- WebSocket原理与实践
开题思考:如何实现客户端及时获取服务端数据? Polling 指客户端每隔一段时间(周期性)请求服务端获取数据,可能有更新数据返回,也可能什么都没有,它并不在乎服务端数据有无更新.(Web端一般采用a ...
- ElasticSearch入门简介
ElasticSearch是基于Apache Lucene的分布式搜索引擎, 提供面向文档的搜索服务.本文以6.2.3版本为例介绍ElasticSearch的应用. 本文首先介绍ElasticSear ...