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 ...
随机推荐
- 周末,说声php的setter&getter(魔术)方法,你们辛苦了
php 作为快速迭代项目的语言,其牛逼性质自不必多说.今天咱们要来说说php语言几个魔术方法,当然了,本文主要以setter&getter方法说明为主. 首先,咱们得知道什么叫魔术方法? 官方 ...
- LeetCode--No.012 Integer to Roman
12. Integer to Roman Total Accepted: 71315 Total Submissions: 176625 Difficulty: Medium Given an int ...
- Spark 的 Shuffle过程介绍`
Spark的Shuffle过程介绍 Shuffle Writer Spark丰富了任务类型,有些任务之间数据流转不需要通过Shuffle,但是有些任务之间还是需要通过Shuffle来传递数据,比如wi ...
- 构建NTP时间服务器
NTP服务器是用于局域网服务器时间同步使用的,可以保证局域网所有的服务器与时间服务器的时间保持一致,某些应用对时间实时性要求高的必须统一时间. 互联网的时间服务器也有很多,例如ntpdate ntp. ...
- C# signtool error:no certificates were found that met all the given criteria 错误解决方案
程序运行时报错:signtool error:no certificates were found that met all the given criteria (汉译:符号工具错误:没有找到符合所 ...
- 转载:https原理:证书传递、验证和数据加密、解密过程解析
写的太好了,就是我一直想找的内容,看了这个对https立马明白多了 http://www.cnblogs.com/zhuqil/archive/2012/07/23/2604572.html 我们都知 ...
- Set "$USE_DEPRECATED_NDK=true" in gradle.properties to continue using the current NDK integration. 解决办法
1.将 jni 文件夹名改为 cpp: 2.添加 CMakeLists.txt; 3.修改 build.gradle; externalNativeBuild { cmake { path " ...
- Apache Commons Beanutils 二 (动态Bean - DynaBeans)
相关背景 上一篇介绍了PropertyUtils的用法,PropertyUtils主要是在不修改bean结构的前提下,动态访问bean的属性: 但是有时候,我们会经常希望能够在不定义一个Java类的前 ...
- 【PyTorch深度学习60分钟快速入门 】Part4:训练一个分类器
太棒啦!到目前为止,你已经了解了如何定义神经网络.计算损失,以及更新网络权重.不过,现在你可能会思考以下几个方面: 0x01 数据集 通常,当你需要处理图像.文本.音频或视频数据时,你可以使用标准 ...
- angular监听dom渲染完成,判断ng-repeat循环完成
一.前言 最近做了一个图片懒加载的小插件,功能需要dom渲染完成后,好获取那些需要懒加载的dom元素.那么问题来了,如果只是感知静态的dom用ready,onload都可以,但项目用的angular, ...