Menu

Array length [Résolu]

ephelya 171 Messages postés mercredi 28 septembre 2011Date d'inscription 1 mai 2018 Dernière intervention - 8 févr. 2018 à 17:59 - Dernière réponse : ephelya 171 Messages postés mercredi 28 septembre 2011Date d'inscription 1 mai 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 

Votre réponse

5 réponses

ephelya 171 Messages postés mercredi 28 septembre 2011Date d'inscription 1 mai 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. 6055 Messages postés mardi 15 mai 2012Date d'inscription 24 mai 2018 Dernière intervention - Modifié par le père. le 9/02/2018 à 00:10
0
Utile
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 171 Messages postés mercredi 28 septembre 2011Date d'inscription 1 mai 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. 6055 Messages postés mardi 15 mai 2012Date d'inscription 24 mai 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 171 Messages postés mercredi 28 septembre 2011Date d'inscription 1 mai 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.