Advertisement
Guest User

Untitled

a guest
Jul 28th, 2014
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var arr = [], sortedArr = [],
  2.     n = input[0],
  3.     i;
  4.    
  5. for (i = 0; i < n; i += 1) {
  6.     // liniiki[i] = ip user time
  7.     var lineSplit = input[i + 1].split(' '); // [0] = ip; [1] = user; [2] = time
  8.    
  9.     if (arr[lineSplit[1]]) { // if user already has entry
  10.         arr[lineSplit[1]].time += parseInt(lineSplit[2]);
  11.         arr[lineSplit[1]].IPs.push(lineSplit[0]);
  12.     } else {
  13.         arr[lineSplit[1]] = {
  14.             time: parseInt(lineSplit[2]),
  15.             IPs: [lineSplit[0]]
  16.         };
  17.     }
  18. }
  19.  
  20. for (i in arr) {
  21.     // remove duplicates
  22.     arr[i].IPs = arr[i].IPs.filter(function(elem, pos, self) {
  23.         return self.indexOf(elem) === pos;
  24.     });
  25.    
  26.     // sort IPs
  27.     arr[i].IPs.sort(function(a, b) {
  28.         return a.localeCompare(b);
  29.     });
  30.    
  31.     sortedArr.push([i, arr[i]]);
  32. }
  33.  
  34. sortedArr.sort(function(a, b) {
  35.     return a[0].localeCompare(b[0]);
  36. });
  37.  
  38. for (i = 0; i < sortedArr.length; i += 1) {
  39.     var key = sortedArr[i][0], // name
  40.         value = sortedArr[i][1]; // .time = duration; .IPs = ips
  41.        
  42.     console.log(key + ': ' + value.time + " [" + value.IPs.join(', ') + "]");
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement