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非数字(中文)排序

  JavaScript按纯数字排序

  JavaScript日期排序

  JavaScript按日期排序之灵活排序

JavaScript按IP地址排序的更多相关文章

  1. python对ip地址排序、对列表进行去重

    一:使用python对ip地址排序所用代码示例一: import socket iplist = ['10.5.11.1','192.168.1.33','10.5.2.4','10.5.1.3',' ...

  2. javascript把IP地址转为数值几种方案,来挑战一下效率吧

    先看看什么是IP地址: IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节).IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~25 ...

  3. JavaScript实现IP地址的输入框方式

    最近遇到一些这样的需求:实现一种IP地址的输入方式,就是输入3个字符或自动跳到下一个输入框内,删除的时候,一个输入框没有了字符,自动跳回上一个输入框.看到这里,相信大家都有一些想法了,没错,这种方法就 ...

  4. Excel中IP地址排序

    思路 将IP地址按"."分隔,提取"."之间的每个数,然后根据提取出的列从左至右进行主要字段及次要字段排序 公式说明 返回一个字符串在另一个字符串中出现的起始位 ...

  5. JavaScript按纯数字排序

      直接上代码: var arr=[ {name:"张散步",age:"23",sports:"篮球",number:"23112 ...

  6. js获取IP地址方法总结_转

    js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338.html 1,js取得IP地址 ...

  7. js获取IP地址多种方法实例教程

    js获取IP地址方法总结   js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338. ...

  8. js获取IP地址方法总结

    js代码获取IP地址的方法,如何在js中取得客户端的IP地址.原文地址:js获取IP地址的三种方法 http://www.jbxue.com/article/11338.html 1,js取得IP地址 ...

  9. java正则表达式小练习(IP地址检测、排序,叠词的处理,邮件地址的获取)

    import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; import java.util.reg ...

随机推荐

  1. redis 缓存

    本篇博客只介绍 redis 作为缓存的的一些使用,以及在项目中如何把redis和spring如何集成. 1:redis的maven依赖,redis 依赖   spring-redis 依赖: < ...

  2. 解决element-ui upload组件报错 Avoid using non-primitive value as key, use string/number value instead

    到底是啥错呢,就是要求你的key必须是string或者number类型 那么解决就是找到这个报错的key(在node_modules/element-ui/lib/element-ui.common. ...

  3. Shell-6--预定义变量

  4. 多个git使用的 ssh key共存

    ssh-keygen -t rsa -C "ljkj028@qq.com" 不要一直回车,指定密钥为 id_rsa_ljkj 默认为(id_rsa) 同理 创建其他密钥 打开ssh ...

  5. Linux下安装配置与使用MySQL数据库

    Linux下安装配置与使用MySQL数据库 在Linux下安装做开发时往往少不了要使用到MySQL数据库,下面就Linux系统为例讲解一下,如何安装MySQL数据库,如何启用/停.止MySQL服务,如 ...

  6. ASP.NET Core 2.2中的Endpoint路由

    Endpoint路由 在ASP.NET Core 2.2中,新增了一种路由,叫做Endpoint(终结点)路由.本文将以往的路由系统称为传统路由. 本文通过源码的方式介绍传统路由和Endpoint路由 ...

  7. Win10 Hyper-v下虚拟机使用无线网络

    首先要承认一点的是写这个随笔更大的初衷是想吐槽,搜了半天,全是一种方法,就是创建一个新的网络适配器,配置为外部网络啥啥啥,用倒是能用,就是网速那叫一个感人,我的是电信百兆光纤网页打开都如蜗牛爬,无法忍 ...

  8. js 学习记录(一)

    前情提要: 本记录参照  <<javascript 入门导论>>  这本书学习 

  9. Spring Boot功能实战

    添加web功能启动器 添加了Spring Boot基础依赖后,如要使用web mvc功能,只需要添加如下启动器即可,Spring Boot会自动装配web功能. <dependencies> ...

  10. web自动化测试---web页面元素的定位

    selenium提供了很多用于定位元素的方法,首先我们自己需要知道元素有哪些属性,这就需要用到安装测试环境中firebug来定位 打开firefox浏览器,按下F12键,我们就可以看到如下图所示的界面 ...