繁体   English   中英

JS如何比较和计算每个第一个多维数组中的相同元素?

[英]JS How to compare and count the same elements in each first multidimensional array?

我有这个JS代码:

$.get('file.log', function(data) {
      var lines = data.split("\n");
      $.each(lines, function(n, elem) {
        var url = elem.match(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig);
        var parts = url.toString().split(',h');             
        var file=parts[0];
        var hostname='h' + parts[1];
    });

通过部分[0],我得到每个主机名,如何将它们相互比较并显示出最可重复的? 据我了解,这是多维数组的第一个元素。

这是日志文件的示例:

85.164.152.30 - - [23/May/2012:14:01:05 +0200] "GET http://www.vgtv.no/video/img/94949_160px.jpg HTTP/1.1" 200 3889 "http://www.vgtv.no/" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0"

只需使用另一个对象即可收集统计信息。

var hostnameFrequencies = {};

$.get('file.log', function (data) {
    var lines = data.split("\n");
    $.each(lines, function (n, elem) {
        var url = elem.match(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig);
        var parts = url.toString().split(',h');
        var file = parts[0];
        var hostname = 'h' + parts[1];
        hostnameFrequencies[hostname] = hostnameFrequencies[hostname] ? hostnameFrequencies[hostname] + 1 : 1;
    });
    console.log(hostnameFrequencies);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM