http://stackoverflow.com/questions/11981317/need-to-implement-my-algorithm-using-javascript/11989932#11989932

http://stackoverflow.com/questions/11981317/need-to-implement-my-algorithm-using-javascript/11989932#11989932

by PAEz

HTML

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
  <code id='output'></code>  
</body>
</html>

JavaScript

var teams=[
"109 200",
"109 201",
"102 202",
"103 202"
];

var members ={};

var matesId='109';

// Members that won
var wins={};

// First lets find out how many teams a member is in
for (var i=0,length=teams.length; i<length;i++){
  var temp = teams[i].split(' ');
  for (var z=0,zlength=temp.length;z<zlength;z++){
    if (!members[temp[z]]) members[temp[z]]={wins:0,totalTeams:0,id:temp[z]};
      members[temp[z]].totalTeams=members[temp[z]].totalTeams+1;
  }
    teams[i]=[members[temp[0]],members[temp[1]]];
}

for (var i=0,length=teams.length; i<length;i++){
  var member1=teams[i][0];
  var member2=teams[i][1];
  if (member1.totalTeams>member2.totalTeams){
    member1.wins=member1.wins+1;
  } else if (member1.totalTeams<member2.totalTeams){
    member2.wins=member2.wins+1;
  } else {
    member1.wins=member1.wins+1;
    member2.wins=member2.wins+1;
  }    
}

for (var i=0,length=teams.length; i<length;i++){
  var member1=teams[i][0];
  var member2=teams[i][1];
  if (member1.wins>member2.wins){
    if (wins[member2.id]!==true) wins[member1.id]=true;
  } else if (member1.wins<member2.wins){
    if (wins[member1.id]!==true) wins[member2.id]=true;
  } else if (!wins[member1.id] && !wins[member2.id]) {
    if (member1.id==matesId || member2.id==matesId) {
      wins[matesId]=true;
    } else{
     // A draw, so pick one
      Math.round(Math.random())==1 ? wins[member2.id]=true : wins[member1.id]=true;
    }
  }    
}

var keys=Object.keys(wins);
var results=[];
results.push(keys.length);
for (var i=0,length=keys.length; i<length;i++){
  results.push(keys[i]);
}
results=results.join('\n');
document.querySelector('#output').innerText=results;