- How to loop through and extract property values from a complex object (Array)?
- //
- // featured table
- //
- jpoker.plugins.featuredTable = function(url, options) {
- var opts = $.extend({}, jpoker.plugins.featuredTable.defaults, options);
- var server = jpoker.url2server({ url: url });
- server.registerUpdate(function(server, what, packet) {
- if (packet && packet.type == 'PacketPokerTableList') {
- if (packet.packets.length === 0) {
- var updated = function(server, what, packet) {
- if(packet && packet.type == 'PacketPokerTableList') {
- var found = null;
- for(var i = packet.packets.length - 1; i >= 0 ; i--) {
- var subpacket = packet.packets[i];
- if(opts.compare(found, subpacket) >= 0) {
- found = subpacket;
- }
- }
- if(found) {
- found.game_id = found.id;
- server.setTimeout(function() { server.tableJoin(found.game_id); }, 1);
- }
- return false;
- } else {
- return true;
- }
- };
- server.registerUpdate(updated, null, 'featuredTable ' + url);
- server.selectTables(opts.string);
- }
- return false;
- } else {
- return true;
- }
- }, null, 'featuredTable ' + url);
- server.selectTables('my');
- return this;
- };
- jpoker.plugins.featuredTable.defaults = {
- string: '',
- compare: function(a, b) { return a && b && b.players - a.players; }
- };
- {"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}
- //make sure the object has the necessary info
- if(packet && packet.type == 'PacketPokerTableList' && packet.packets && packet.packets.length > 0) {
- //go through each packet.packets
- for (var i=0;i < packet.packets.length;i++){
- if(packet.packets[i].type == 'PacketPokerTable'){
- var id = packet.packets[i].id;
- //open window
- var newWin = window.open('_blank',id);
- //write new content in the new window
- newWin.document.write(server.tableJoin(id));
- }
- }
- }
- function loop(obj) {
- if(obj.someprop == 'someval') {
- //do something
- } else {
- loop(obj);
- }
- }