Menu

Array length [Résolu]

ephelya 169 Messages postés mercredi 28 septembre 2011Date d'inscription 15 février 2018 Dernière intervention - 8 févr. 2018 à 17:59 - Dernière réponse : ephelya 169 Messages postés mercredi 28 septembre 2011Date d'inscription 15 février 2018 Dernière intervention
- 10 févr. 2018 à 11:46
Bonjour,

J'ai écrit un script qui me paraissait correct mais qui ne fonctionne pas...
        
var comm = {};
comm["author"] = author;
comm["title"] = title;
comm["time"] = time;
comm["comment"] = comment;

var comments = {};
comments[0] = comm;
comments[1] = comm;
comments[2] = comm;
console.log(comments);

function display_comments(comments)
{
var nb = $(comments).length; console.log(nb+" éléments");
}


Le premier console.log me retourne bien 3 éléments identiques, mais le deuxième me sort "1 éléments". Pourquoi ? Qu'est-ce que je fais mal ?
(je fais simplement un test avec une page html avant d'écrire le script ajax et la page php qui renverront une série de données, c'est pour ça que j'ai utilisé 3 fois les mêmes données)

Merci d'avance pour votre aide !:-)

Afficher la suite 

5 réponses

Répondre au sujet
ephelya 169 Messages postés mercredi 28 septembre 2011Date d'inscription 15 février 2018 Dernière intervention - Modifié par ephelya le 8/02/2018 à 23:06
0
Utile
personne ?
Commenter la réponse de ephelya
le père. 6031 Messages postés mardi 15 mai 2012Date d'inscription 22 février 2018 Dernière intervention - Modifié par le père. le 9/02/2018 à 00:10
0
Utile
3
Bonjour

Qu'appelles-tu le deuxième ? Ton script fait un seul console.log. Le second est dans une focntion et tu ne dis pas comment tu appelles cette fonction.

Et que fait ce $ dans ta fonction ? Tu utilises jquery ? Si oui (c'eût été bien de le préciser), je ne vois pas ce que peut représenter $(comments), mais en tous cas ce n'est pas la même chose que comments.
ephelya 169 Messages postés mercredi 28 septembre 2011Date d'inscription 15 février 2018 Dernière intervention - 9 févr. 2018 à 15:38
oui, pardon, j'ai aussi
        $( document).ready( function () {
display_comments(comments)
});

c'est à ce moment-là que ça me sort "1 éléments".
Je ne comprends pas bien ta réponse, comments est un array, et le console.log(comments) affiche
Object
0 : {author: "ephelya", title: "Je suis contente", time: "14 janvier 17", comment: "Bla bla bla lorem ipsum sit amet"}
1 : {author: "ephelya", title: "Je suis contente", time: "14 janvier 17", comment: "Bla bla bla lorem ipsum sit amet"}
2 : {author: "ephelya", title: "Je suis contente", time: "14 janvier 17", comment: "Bla bla bla lorem ipsum sit amet"}
, ce sont les infos définies précédemment
Je veux juste que mon script m'indique le nombre d'éléments contenus dans l'array, c'est bien $(comments).length, qui devrait me retourner 3, non ?
le père. 6031 Messages postés mardi 15 mai 2012Date d'inscription 22 février 2018 Dernière intervention - 9 févr. 2018 à 16:50
Plusieurs remarques :
1 - Non, comments n'est pas un array. On définit un array avec des crochets carrés [ ], pas des accolades { }. Si c'était un array, console.log (comments) t'afficherait Array, pas Object.
2 - Tu n'as pas répondu à ma question sur ton $ dans $(comments). À quoi sert-il ? Si comments était un Array, tu aurais sa longueur avec comments.length, pourquoi ajouter un $ ???
ephelya 169 Messages postés mercredi 28 septembre 2011Date d'inscription 15 février 2018 Dernière intervention - 10 févr. 2018 à 11:46
En fait, je ne connais tout simplement pas javascript, je débute en jquery et je pioche ici et là les scripts dont j'ai besoin, et en général, ça fonctionne, mais c'est normal que je fasse encore des errerus grossières... ;-)
En tout cas, j'ai remplacé {} par [] et $(comments).length par comments.length et ça fonctionne parfaitement, merci beaucoup ! :-)
Commenter la réponse de le père.