enfin, je me doute bien qu'il y a une différence entre Array et Objet,
je parle d'un point de vue très pratique.
Par exemple, je remplis une Array ainsi :
var r = [];
r['machin'] = "truc muche";
r['bidule'] = 3.14;
etc...
déjà est-ce que je peux faire :
r['callback'] = aFunction;
?
si dans un Object, on utilise que des valeurs statiques (des scalaires?)
du point de vue de l'usage il n'y a pas vraiment de différence entre
Object et Array si ?
si je fais :
var r = new Object();
r['machin'] = "truc muche";
r['bidule'] = 3.14;
r['callback'] = aFunction;
c'est tout comme nom ?
Bon, en fait mon pb est que j'ai utilisé une Array et que je voudrais
passer à un Object, sans réécrire tout mon code...
Je ne ferai ce changement qu'à condition d'être assuré que je puisse
utiliser :
cat = r['cat'];
et :
for (var key in r) 5...
de la même manière que r soit une Array ou un Object...
bon sur Object yapas length comme sur Array, j'ai créé une fonction size
pour ça qui retourne le nb de propriétés.
--
« Le temps est un grand maitre, dit-on. Le malheur est
qu'il tue ses élèves. »
(Berlioz)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
Bonjour,
Le 04/10/2011 20:41, Une Bévue a écrit :
enfin, je me doute bien qu'il y a une différence entre Array et Objet, je parle d'un point de vue très pratique.
D'un point de vue très pratique, et si je me rappelle bien (ma doc est restée au boulot), 1) un Array est un Object 2) les différences de comportement doivent concerner principalement les propriétés 'length' et '0' à '4294967295'.
Concernant le point (2), je veux dire que, par exemple, si tu assignes r['150'] pour un Array dont r['length'] est plus petit que 151, alors cela positionne en même temps r['length'] à 151. Inversement, si tu fais r['length'] = 10, alors cela efface toutes les propriétés entre '10' et '4294967295'.
Par exemple, je remplis une Array ainsi : var r = []; r['machin'] = "truc muche"; r['bidule'] = 3.14;
etc... déjà est-ce que je peux faire :
r['callback'] = aFunction; ?
Ben oui, mais le nom 'callback' a une signification spéciale pour certains types d'objets ? Si oui, je l'ignorais.
si dans un Object, on utilise que des valeurs statiques (des scalaires?) du point de vue de l'usage il n'y a pas vraiment de différence entre Object et Array si ?
D'après ce que je crois, que les valeurs soient 'statiques' ou pas, quel que soit le sens que tu donnes à cet adjectif, il ne doit pas y avoir de différence entre Object et Array, du moins tant que tu n'utilises pas comme noms de propriétés le nom 'length' ou un entier entre 0 et 2^32-1 (transmis ou non sous forme de string).
si je fais : var r = new Object(); r['machin'] = "truc muche"; r['bidule'] = 3.14; r['callback'] = aFunction;
c'est tout comme nom ?
Je suppose que tu voulais dire « c'est tou comme, non ? » et que c'est encore ta saleté de correcteur orthographique qui a fait n'importe quoi.
Pour répondre à cette question, je dois vérifier dans la norme, mais je suis quasiment sûr que c'est tout comme, oui.
Bon, en fait mon pb est que j'ai utilisé une Array et que je voudrais passer à un Object, sans réécrire tout mon code...
Je ne ferai ce changement qu'à condition d'être assuré que je puisse utiliser : cat = r['cat']; et : for (var key in r) 5...
de la même manière que r soit une Array ou un Object...
À priori, je pense que oui.
bon sur Object yapas length comme sur Array, j'ai créé une fonction size pour ça qui retourne le nb de propriétés.
Euh... si tu as besoin de 'length', lequel ne compte que les éléments nommés par un nombre, attention : c'est là que tu risques d'avoir des problèmes.
Donc, la première chose à faire, c'est de regarder si oui ou non tu as des éléments indicés par des nombres (entiers entre 0 et 4294967295).
Bonjour,
Le 04/10/2011 20:41, Une Bévue a écrit :
enfin, je me doute bien qu'il y a une différence entre Array et Objet,
je parle d'un point de vue très pratique.
D'un point de vue très pratique, et si je me rappelle bien (ma doc est
restée au boulot),
1) un Array est un Object
2) les différences de comportement doivent concerner principalement les
propriétés 'length' et '0' à '4294967295'.
Concernant le point (2), je veux dire que, par exemple, si tu assignes
r['150'] pour un Array dont r['length'] est plus petit que 151, alors
cela positionne en même temps r['length'] à 151. Inversement, si tu
fais r['length'] = 10, alors cela efface toutes les propriétés entre
'10' et '4294967295'.
Par exemple, je remplis une Array ainsi :
var r = [];
r['machin'] = "truc muche";
r['bidule'] = 3.14;
etc...
déjà est-ce que je peux faire :
r['callback'] = aFunction;
?
Ben oui, mais le nom 'callback' a une signification spéciale pour
certains types d'objets ? Si oui, je l'ignorais.
si dans un Object, on utilise que des valeurs statiques (des scalaires?)
du point de vue de l'usage il n'y a pas vraiment de différence entre
Object et Array si ?
D'après ce que je crois, que les valeurs soient 'statiques' ou pas, quel
que soit le sens que tu donnes à cet adjectif, il ne doit pas y avoir de
différence entre Object et Array, du moins tant que tu n'utilises pas
comme noms de propriétés le nom 'length' ou un entier entre 0 et 2^32-1
(transmis ou non sous forme de string).
si je fais :
var r = new Object();
r['machin'] = "truc muche";
r['bidule'] = 3.14;
r['callback'] = aFunction;
c'est tout comme nom ?
Je suppose que tu voulais dire « c'est tou comme, non ? » et que c'est
encore ta saleté de correcteur orthographique qui a fait n'importe quoi.
Pour répondre à cette question, je dois vérifier dans la norme, mais je
suis quasiment sûr que c'est tout comme, oui.
Bon, en fait mon pb est que j'ai utilisé une Array et que je voudrais
passer à un Object, sans réécrire tout mon code...
Je ne ferai ce changement qu'à condition d'être assuré que je puisse
utiliser :
cat = r['cat'];
et :
for (var key in r) 5...
de la même manière que r soit une Array ou un Object...
À priori, je pense que oui.
bon sur Object yapas length comme sur Array, j'ai créé une fonction size
pour ça qui retourne le nb de propriétés.
Euh... si tu as besoin de 'length', lequel ne compte que les éléments
nommés par un nombre, attention : c'est là que tu risques d'avoir des
problèmes.
Donc, la première chose à faire, c'est de regarder si oui ou non tu as
des éléments indicés par des nombres (entiers entre 0 et 4294967295).
enfin, je me doute bien qu'il y a une différence entre Array et Objet, je parle d'un point de vue très pratique.
D'un point de vue très pratique, et si je me rappelle bien (ma doc est restée au boulot), 1) un Array est un Object 2) les différences de comportement doivent concerner principalement les propriétés 'length' et '0' à '4294967295'.
Concernant le point (2), je veux dire que, par exemple, si tu assignes r['150'] pour un Array dont r['length'] est plus petit que 151, alors cela positionne en même temps r['length'] à 151. Inversement, si tu fais r['length'] = 10, alors cela efface toutes les propriétés entre '10' et '4294967295'.
Par exemple, je remplis une Array ainsi : var r = []; r['machin'] = "truc muche"; r['bidule'] = 3.14;
etc... déjà est-ce que je peux faire :
r['callback'] = aFunction; ?
Ben oui, mais le nom 'callback' a une signification spéciale pour certains types d'objets ? Si oui, je l'ignorais.
si dans un Object, on utilise que des valeurs statiques (des scalaires?) du point de vue de l'usage il n'y a pas vraiment de différence entre Object et Array si ?
D'après ce que je crois, que les valeurs soient 'statiques' ou pas, quel que soit le sens que tu donnes à cet adjectif, il ne doit pas y avoir de différence entre Object et Array, du moins tant que tu n'utilises pas comme noms de propriétés le nom 'length' ou un entier entre 0 et 2^32-1 (transmis ou non sous forme de string).
si je fais : var r = new Object(); r['machin'] = "truc muche"; r['bidule'] = 3.14; r['callback'] = aFunction;
c'est tout comme nom ?
Je suppose que tu voulais dire « c'est tou comme, non ? » et que c'est encore ta saleté de correcteur orthographique qui a fait n'importe quoi.
Pour répondre à cette question, je dois vérifier dans la norme, mais je suis quasiment sûr que c'est tout comme, oui.
Bon, en fait mon pb est que j'ai utilisé une Array et que je voudrais passer à un Object, sans réécrire tout mon code...
Je ne ferai ce changement qu'à condition d'être assuré que je puisse utiliser : cat = r['cat']; et : for (var key in r) 5...
de la même manière que r soit une Array ou un Object...
À priori, je pense que oui.
bon sur Object yapas length comme sur Array, j'ai créé une fonction size pour ça qui retourne le nb de propriétés.
Euh... si tu as besoin de 'length', lequel ne compte que les éléments nommés par un nombre, attention : c'est là que tu risques d'avoir des problèmes.
Donc, la première chose à faire, c'est de regarder si oui ou non tu as des éléments indicés par des nombres (entiers entre 0 et 4294967295).
SAM
Le 04/10/11 20:41, Une Bévue a écrit :
enfin, je me doute bien qu'il y a une différence entre Array et Objet, je parle d'un point de vue très pratique.
Par exemple, je remplis une Array ainsi : var r = []; r['machin'] = "truc muche"; r['bidule'] = 3.14;
ben là, la longueur de l'array est 0 (zéro), il a pas bougé d'un iota
tu l'as transformé en object enfin ... tu lui as adjoint les propriétés machin, bidule, ... puisque, à la base, un array est d'abord un object
essayer :
var r = [5,6,7,8,9]; r['machin'] = "truc muche"; r['bidule'] = 3.14; r['truc'] = 'vu'; alert(r.length); // 5 et non pas 3 alert(r.machin + ' != ' +r[0]);
déjà est-ce que je peux faire :
r['callback'] = aFunction;
Je pense que ça ne doit poser aucun problème.
var f = function(){alert('oui? que me veut-on ?');}; r['f'] = f; r.f(); // keskya ? (mon php a encore merdé les charsets là !)
si je fais : var r = new Object(); r['machin'] = "truc muche"; r['bidule'] = 3.14; r['callback'] = aFunction;
c'est tout comme nom ?
ben ... un object est un object, oui.
Différentes notations :
var r = {}; // new Object r.vu = "vu"; // propriété de l'objet r r.revu = "revu"; alert(r.vu + 'netn' + r.revu); /* variante */ r['vu'] = "caché"; r['revu'] = 'cachés'; alert(r.vu + 'netn' + r.revu);
var a = []; // new Array a.vu = "vus"; // propriété de l'objet a a.revu = "revus"; alert(a.vu + 'netn' + a.revu);
> de la même manière que r soit une Array ou un Object...
non .. ça ça m'étonnerait
bon, de toutes façons je serai "prudent"...
-- Je m'intéresse au futur, c'est là que je compte passer le reste de ma vie. (Woody Allen)
unbewusst.sein
Olivier Miakinen <om+ wrote:
Euh... si tu as besoin de 'length', lequel ne compte que les éléments nommés par un nombre, attention : c'est là que tu risques d'avoir des problèmes.
Donc, la première chose à faire, c'est de regarder si oui ou non tu as des éléments indicés par des nombres (entiers entre 0 et 4294967295).
OK pour tout, merci beaucoup, pigé. Je n'ai donc pas trop de risques (ie. modifs à faire) à passer mon Array en Object.
en fait le truc est que j'ai pompé un js mvc : <ah zut je ne retrouve pas la réf de l'article...>
dans la fonction principale, il y avait déjà 3 arguments, j'en ai ajouté d'autres et pour finir j'aimerais n'en avoir plus qu'UN, sous forme d'objet, c'est plus facile à tester le nb d'arguments effectifs dans un objet... -- Je m'intéresse au futur, c'est là que je compte passer le reste de ma vie. (Woody Allen)
Olivier Miakinen <om+news@miakinen.net> wrote:
Euh... si tu as besoin de 'length', lequel ne compte que les éléments
nommés par un nombre, attention : c'est là que tu risques d'avoir des
problèmes.
Donc, la première chose à faire, c'est de regarder si oui ou non tu as
des éléments indicés par des nombres (entiers entre 0 et 4294967295).
OK pour tout, merci beaucoup, pigé.
Je n'ai donc pas trop de risques (ie. modifs à faire) à passer mon Array
en Object.
en fait le truc est que j'ai pompé un js mvc :
<ah zut je ne retrouve pas la réf de l'article...>
dans la fonction principale, il y avait déjà 3 arguments, j'en ai ajouté
d'autres et pour finir j'aimerais n'en avoir plus qu'UN, sous forme
d'objet, c'est plus facile à tester le nb d'arguments effectifs dans un
objet...
--
Je m'intéresse au futur, c'est là que je compte passer
le reste de ma vie.
(Woody Allen)
Euh... si tu as besoin de 'length', lequel ne compte que les éléments nommés par un nombre, attention : c'est là que tu risques d'avoir des problèmes.
Donc, la première chose à faire, c'est de regarder si oui ou non tu as des éléments indicés par des nombres (entiers entre 0 et 4294967295).
OK pour tout, merci beaucoup, pigé. Je n'ai donc pas trop de risques (ie. modifs à faire) à passer mon Array en Object.
en fait le truc est que j'ai pompé un js mvc : <ah zut je ne retrouve pas la réf de l'article...>
dans la fonction principale, il y avait déjà 3 arguments, j'en ai ajouté d'autres et pour finir j'aimerais n'en avoir plus qu'UN, sous forme d'objet, c'est plus facile à tester le nb d'arguments effectifs dans un objet... -- Je m'intéresse au futur, c'est là que je compte passer le reste de ma vie. (Woody Allen)
Mickaël Wolff
On 04/10/11 20:41, Une Bévue wrote:
enfin, je me doute bien qu'il y a une différence entre Array et Objet, je parle d'un point de vue très pratique.
Par exemple, je remplis une Array ainsi : var r = []; r['machin'] = "truc muche"; r['bidule'] = 3.14;
/! en JS, la notation crochets ne signifie pas « accès aux éléments d'un tableau ». Avant tout, c'est l'accès à une propriété de l'objet. Les objets tableau ajoutent une sémantique d'accès spécifique, mais ce n'est pas le comportement de base.
On 04/10/11 20:41, Une Bévue wrote:
enfin, je me doute bien qu'il y a une différence entre Array et Objet,
je parle d'un point de vue très pratique.
Par exemple, je remplis une Array ainsi :
var r = [];
r['machin'] = "truc muche";
r['bidule'] = 3.14;
/! en JS, la notation crochets ne signifie pas « accès aux éléments
d'un tableau ». Avant tout, c'est l'accès à une propriété de l'objet.
Les objets tableau ajoutent une sémantique d'accès spécifique, mais ce
n'est pas le comportement de base.
enfin, je me doute bien qu'il y a une différence entre Array et Objet, je parle d'un point de vue très pratique.
Par exemple, je remplis une Array ainsi : var r = []; r['machin'] = "truc muche"; r['bidule'] = 3.14;
/! en JS, la notation crochets ne signifie pas « accès aux éléments d'un tableau ». Avant tout, c'est l'accès à une propriété de l'objet. Les objets tableau ajoutent une sémantique d'accès spécifique, mais ce n'est pas le comportement de base.