Javascript 按特异性排列IP阵列
我有一个IP子网阵列,并希望按子网特性重新排列阵列 例如,我有以下数组:Javascript 按特异性排列IP阵列,javascript,arrays,sorting,Javascript,Arrays,Sorting,我有一个IP子网阵列,并希望按子网特性重新排列阵列 例如,我有以下数组: var array = [['10.0.0.0/8', 'test1'], ['10.155.220.0/24', 'test2'], ['10.155.200.0/24', 'test3']]; 现在我想重新排列它,使其看起来像这样: var array = [['10.155.220.0/24', 'test2'], ['10.155.200.0/24', 'test3'], ['10.0.0.0/8', 'test
var array = [['10.0.0.0/8', 'test1'], ['10.155.220.0/24', 'test2'], ['10.155.200.0/24', 'test3']];
现在我想重新排列它,使其看起来像这样:
var array = [['10.155.220.0/24', 'test2'], ['10.155.200.0/24', 'test3'], ['10.0.0.0/8', 'test1']];
基本上,10.155.220.0/24是比10.0.0.0/8更具体的子网。所以我想知道我是否可以按照特定性来安排它们,首先是更具体的子网。最终,如果这样的事情不可行,我可以通过查看/24和/8,从高到低排列它们
干杯所以你可以写一个排序,检查数组第一个元素的长度,然后检查两个长度是否相同,检查两个比较元素是否相同,然后检查字符串并相应地排序 var arr=[ ['10.0.0.0/8','test1'], [10.155.220.0/24','test2'], ['10.155.200.0/24','test3'] ]; arr.sorta,b=>{ 返回a[0]。长度b[0]。长度?-1: a[0]==b[0]?a[1]。localeCompareb[1]?1:-1: 0; };
console.logarr 试着寻找JS Array.sort,你就会找到它,下面是一个我应该如何做的示例。我希望它能帮助你 让数组=['10.0.0.0/8','test1'],['10.155.220.0/24','test2'],['10.155.200.0/24','test3']; //使用Array.sort函数 console.logarray.sortcompareByMask console.logarray.SortComparebySpecity 函数compareByMaskitem1,item2{ //从item1和item2中获取第一个元素 设[full_ip1]=item1; 设[full_ip2]=item2; //拆分元素以获取“/”后面的内容 设mask1=full_ip1.split'/'[1] 设mask2=full_ip2.拆分“/”[1] //JS排序函数必须返回一个整数,在这里您可以选择执行以下操作 //如果mask1