2010-06-12 5 views
0

Par exemple, si je garde tableau de références par id comme ça:Javascript ne bouclant que par les propriétés définies du tableau. Comment?

if(typeof channel_boards[misc.channel_id] == 'undefined') { 

    channel_boards[misc.channel_id] = $('<div class="channel" channel_id="'+misc.channel_id+'"></div>').appendTo('#board'); 
} 

Et puis je suis en boucle à travers le tableau pour trouver la référence nécessaire. Je parcours également des propriétés non définies. Est-il possible de boucler uniquement à travers des propriétés définies?

for(i=0;i<channel_boards.length;i++) 
{ 
    if(channel_boards[i] != undefined) 
    { 
     if(channel_boards[i].attr('channel_id') != visible) {channel_boards[i].addClass('hidden_board');} 
     else {channel_boards[i].removeClass('hidden_board');}  
    } 
} 

Peut-être que je devrais changer la façon dont je stocke des références? Via l'objet par exemple, mais comment je serai en mesure de trouver la bonne référence par numéro d'identification.

Répondre

1

Il ne semble comme vous le feriez mieux d'utiliser un objet pour stocker les références

var channel_boards = {}; 
var channel_id = 1; 
// add property 
channel_boards["channel_" + channel_id] = ...... 

// enumerate properties 
for (var key in channel_boards) { 
    if (channel_boards.hasOwnProperty(key) { 
     channel_boards[key].attr(...... 
    } 
} 

// delete property 
delete channel_boards["channel_" + channel_id]; 
+0

Putain je suis stupide :) Merci , juste besoin d'ajouter le préfixe. :) – Somebody

+0

Le préfixe est pas nécessaire, tout ce qui peut être converti en une chaîne va faire (y compris les numéros). Donc, vous pouvez vous en sortir avec '.. [channel_id]' –

Questions connexes