Показать сообщение отдельно
  #2 (permalink)  
Старый 08.06.2014, 04:44
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Сообщение от yloboda Посмотреть сообщение
В итоге я получаю под parts[0] все имена файлов, как мне их теперь сравнить между собой и посчитать одинаковые, как я понимаю это первые элементы многомерного массива?
Не вижу я тут многомерного массива...
var parts = url.toString().split(',h');

Зачем вот это надо, если url и так массив?
В общем, если я правильно понял, что надо, то как-то так:
$.get('file.log', function(data) {
  var countObj = {};
  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 file = url[0];
    var hostname = url[1];
	
	if (file in countObj) {
      countObj[file]++;
    } else {
        countObj[file] = 1;
      }
  });
  
  var urlArr = [];
  for(var url in countObj) {
    var tmpObj = {url: url, count: countObj[url]};
    urlArr.push(tmpObj);
  }
  urlArr.sort(function(obj1, obj2){ return obj2.count - obj1.count });
  alert( JSON.stringify(urlArr,'',2) );
});
Ответить с цитированием