2010-10-18 3 views
0

Donc, j'ai un tableau qui contient des objets X, tous nommés par dates et contenant des données inutiles au-delà de leur nom. Je veux stocker ces dates dans un tableau pour une utilisation ultérieure et les objets ne sont apparemment pas trouvés dans un tableau par array [i], alors comment parcourir le tableau et sauvegarder les noms dans une chaîne dans un autre tableau?Recherche d'objets dans un tableau JS et stockage de noms dans un nouveau tableau?

Edit: Ok cette question était due à un brainfart majeur ... La réponse évidente serait

var dP = $('#calendar').GetDate(); 
    var dPTmp = []; 
    var i = 0; 
    for (var id in dP) { 
     dPTmp[i] = dP[id].toString(); 
     i++; 
    } 
    console.log(dPTmp); 
+1

C'est un peu déroutant, puisque vous échangez 'Array' avec' Object'. En JavaScript, il n'y a rien de tel qu'un tableau associatif. Ce sont des objets. Pouvez-vous clarifier cela? – jwueller

+0

var dP = $ ('# calendrier'). GetDates(); --- dP sera maintenant un tableau d'objets nommé "Octobre 18 2010 00:00" qui contient des listes de jours de la semaine, les mois de l'année et autres joyeusetés dont je n'ai pas besoin. J'ai besoin du nom comme une chaîne. – Mantar

+0

Assurez-vous de vérifier '.hasOwnProperty()' dans la boucle! Vous aurez de sérieux ennuis autrement. – jwueller

Répondre

0

Comme insaisissable dit dans les commentaires, vous n'êtes pas affaire à un Array mais avec un Object.

Cependant, la construction que vous recherchez est for..in statement qui vous permet de parcourir les propriétés de l'objet.

Quelque chose le long de ces lignes:

var object1 = { '2010-10-18': 'today', '2010-10-19': 'tomorrow' }, 
    dateArray = [], 
    dateStr = ''; 

for (dateStr in object1) { 
    // here you should probably check that dateStr 
    // and the corresponding value are in correct format 
    // in case someone or something has extended the Object class 
    dateArray.push(dateStr) 
} 

// dateArray is now [ '2010-10-18', '2010-10-19' ] 

Notez également que vous ne pouvez pas faire confiance que les propriétés de l'objet seront réitérés « pour ». Voir .

Questions connexes