Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 29th, 2012  |  syntax: None  |  size: 2.92 KB  |  hits: 12  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. How to loop through and extract property values from a complex object (Array)?
  2. //
  3. // featured table
  4. //
  5. jpoker.plugins.featuredTable = function(url, options) {
  6.  
  7.     var opts = $.extend({}, jpoker.plugins.featuredTable.defaults, options);
  8.     var server = jpoker.url2server({ url: url });
  9.  
  10. server.registerUpdate(function(server, what, packet) {
  11.     if (packet && packet.type == 'PacketPokerTableList') {
  12.         if (packet.packets.length === 0) {
  13.         var updated = function(server, what, packet) {
  14.             if(packet && packet.type == 'PacketPokerTableList') {
  15.             var found = null;
  16.             for(var i = packet.packets.length - 1; i >= 0 ; i--) {
  17.                 var subpacket = packet.packets[i];
  18.                 if(opts.compare(found, subpacket) >= 0) {
  19.                 found = subpacket;
  20.                 }
  21.             }
  22.             if(found) {
  23.                 found.game_id = found.id;
  24.                 server.setTimeout(function() { server.tableJoin(found.game_id); }, 1);
  25.             }
  26.             return false;
  27.             } else {
  28.             return true;
  29.             }
  30.         };
  31.         server.registerUpdate(updated, null, 'featuredTable ' + url);
  32.         server.selectTables(opts.string);
  33.         }
  34.         return false;
  35.     } else {
  36.         return true;
  37.     }
  38.     }, null, 'featuredTable ' + url);
  39.     server.selectTables('my');
  40.     return this;
  41. };
  42.  
  43. jpoker.plugins.featuredTable.defaults = {
  44.     string: '',
  45.     compare: function(a, b) { return a && b && b.players - a.players; }
  46. };
  47.        
  48. {"players":3,"type":"PacketPokerTableList","packets":[{"observers":1,"name":"sitngo417","waiting":0,"percent_flop":0,"average_pot":10852,"skin":"default","variant":"holdem","hands_per_hour":120,"betting_structure":"level-15-30-no-limit","currency_serial":0,"muck_timeout":5,"players":2,"reason":"TableList","tourney_serial":58151,"seats":2,"player_timeout":60,"type":"PacketPokerTable","id":97},{"observers":0,"name":"sitngo418","waiting":0,"percent_flop":100,"average_pot":97700,"skin":"default","variant":"holdem","hands_per_hour":100,"betting_structure":"level-15-30-no-limit","currency_serial":0,"muck_timeout":5,"players":1,"reason":"TableList","tourney_serial":58151,"seats":2,"player_timeout":60,"type":"PacketPokerTable","id":98}],"tables":2,"time__":1329073257148}
  49.        
  50. //make sure the object has the necessary info      
  51. if(packet && packet.type == 'PacketPokerTableList' && packet.packets && packet.packets.length > 0) {
  52.         //go through each packet.packets
  53.         for (var i=0;i < packet.packets.length;i++){
  54.             if(packet.packets[i].type == 'PacketPokerTable'){
  55.                 var id = packet.packets[i].id;
  56.                 //open window
  57.                 var newWin = window.open('_blank',id);
  58.                 //write new content in the new window
  59.                 newWin.document.write(server.tableJoin(id));
  60.             }
  61.         }
  62.     }
  63.        
  64. function loop(obj) {
  65.   if(obj.someprop == 'someval') {
  66.     //do something
  67.   } else {
  68.     loop(obj);
  69.   }
  70. }