Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 使用交叉过滤器对ip地址字段进行排序_Sorting_Ip Address_Crossfilter - Fatal编程技术网

Sorting 使用交叉过滤器对ip地址字段进行排序

Sorting 使用交叉过滤器对ip地址字段进行排序,sorting,ip-address,crossfilter,Sorting,Ip Address,Crossfilter,我想知道是否有任何方法可以使用交叉过滤器对ipaddress进行排序 例如: 我有一个ip阵列: [{ ip: "10.102.126.1"},{ ip: "10.102.126.2"},{ ip: "10.102.126.3"},{ ip: "10.102.126.4"},{ ip: "10.102.126.5"},{ ip: "10.102.126.6"},{ ip: "10.22.126.1"},{ ip: "20.102.126.1"},{ ip: "20.22.126.1"},{

我想知道是否有任何方法可以使用交叉过滤器对ipaddress进行排序

例如: 我有一个ip阵列:

  [{ ip: "10.102.126.1"},{ ip: "10.102.126.2"},{ ip: "10.102.126.3"},{ ip: "10.102.126.4"},{ ip: "10.102.126.5"},{ ip: "10.102.126.6"},{ ip: "10.22.126.1"},{ ip: "20.102.126.1"},{ ip: "20.22.126.1"},{ ip: "100.22.126.1"},{ ip: "200.22.126.1"}]
当我应用crossfilter并使用以下命令获得

dimension.top(无限大)

它对字符串进行排序并返回

输出:200.22.126.1、20.22.126.1、20.102.126.1、100.22.126.1、10.22.126.1、10.102.126.6、10.102.126.5、10.102.126.4、10.102.126.3、10.102.126.2、10.102.126.1

现在,我如何执行IP地址排序


有很多方法可以做到这一点,但我认为按照由整个IP地址组成的数字进行排序是最简单的

因为JavaScript实际上没有整数(只有浮点数),所以让我们按照数字的零填充十六进制表示进行排序,但我觉得这很危险。字符串更直接

请注意,您可以应用任何要生成维度键的转换,因此即使像这样疯狂的转换也应该可以:

function ip_to_hex(s) {
  return s.split('.').map(i=>(+i).toString(16).padStart(2, '0')).join('');
}
var cf = crossfilter(data),
    dim = cf.dimension(d => ip_to_hex(d.ip));
什么?是的:

  • 点点
  • 将每个零件转换为一个数字
  • 将每个零件转换为base-16字符串
  • 确保每个部件有两个数字
  • 将它们全部缝合起来,不使用分隔符
  • 现在,键是类似于
    “02167e01”
    的字符串,crossfilter将对它们进行正确排序(
    .top()
    从最高到最低排序):


    请更新您的问题,将相关代码内联到问题中,并明确指出问题所在。对你的问题的简短回答是“是”。问题是怎么做,我的错。我以前很少使用堆栈溢出。我已经编辑了我的问题。谢谢你的回复。
    [
      {
        "ip": "200.22.126.1"
      },
      {
        "ip": "100.22.126.1"
      },
      {
        "ip": "20.102.126.1"
      },
      {
        "ip": "20.22.126.1"
      },
      {
        "ip": "10.102.126.6"
      },
      {
        "ip": "10.102.126.5"
      },
      {
        "ip": "10.102.126.4"
      },
      {
        "ip": "10.102.126.3"
      },
      {
        "ip": "10.102.126.2"
      },
      {
        "ip": "10.102.126.1"
      },
      {
        "ip": "10.22.126.1"
      }
    ]