javascript - associated arrays
Transcription
javascript - associated arrays
A s s o c i a t e d A r r ays Pour Débuter J AVA S C R I P T (Programmation Internet) V O L . X X I I J.B. Dadet DIASOLUKA Luyalu Nzoyifuanga +243 - 851278216 - 899508675 - 995624714 - 902263541 - 813572818 [email protected] LES « ASSOCIATIVE ARRAYS » ( « ARRAYS ASSOCIATIVES » ou « TABLEAUX ASSOCIATIFS ») : C’est comme leur nom l’indique, des arrays sous forme de littéral d’objet et dans lesquels naturellement les values (éléments) sont explicitement associées à des keys, comme dans les « littéraux d’objet » ordinaires dans lesquels c’est le programmeur qui détermine les noms des keys (on associe explicitement des noms de keys littéraux à des values). Dans une Array les keys sont automatiquement numérotées « de 0 à n », à partir du premier élément de l’array. Une « Array associative » est définie dans des « accolades » (exactement comme un « objet hash ») et non avec des « crochets » comme pour les « Arrays ». <script type="text/javascript"> "use strict"; console.log(["dias","luy","nzoyif"]) console.log({0:"dias",1:"luy",2:"nzoyif"}) </script> Exécution avec Firefox Quantum 64.0b13 : J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII Exécution avec Yandex Version 18.11.0.2022 beta : Mais qu’est-ce que vous me dites-là ? Vous ne connaissez toujours pas encore ce que sont les « keys » et les « values » ? Les « keys » sont les libellés qui permettent l’accès à un « values » de l’array ou de l’objet (les deux d’ailleurs sont des objets), ce sont des voies d’accès aux values, comme les « variables » permettent elles aussi d’accéder aux « values » stockées dans la RAM de l’ordinateur. D’ailleurs on peut aussi changer les values dans une « array » ou un « objet ». Associated Arrays - 2/12 - jeudi, 4. avril 2019 (10:47 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII « keys » et « values » Voyons : <script type="text/javascript"> "use strict"; const a = ["dias","luy","nzoyif"]; console.dir(`a = ${a}, Object.entries(a) = ${Object.entries(a)}, Object.keys(a) = ${Object.keys(a)}, Object.values(a) = ${Object.values(a)}` ); const o = {nom:"dias",postnom1:"luy",postnom2:"nzoyif"}; console.dir(`o = ${o}, Object.entries(o) = ${Object.entries(o)}, Object.keys(o) = ${Object.keys(o)}, Object.values(o) = ${Object.values(o)}` ); </script> Ceci a été affiché avec la méthode de l’objet « String », puisque que nous l’avons affiché en tant que chaîne de caractères, ici dans une « littérale de chaîne ». Synoptique mais beurk ? Dans ce cas affichons cela avec la méthode respective de chaque élément, en les séparant avec des virgules ! <script type="text/javascript"> "use strict"; const a = ["dias","luy","nzoyif"]; console.dir(`a = `, a, `Object.entries(a) = `, Object.entries(a), `Object.keys(a) = `, Object.keys(a), Associated Arrays - 3/12 jeudi, 4. avril 2019 (10:47 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII `Object.values(a) = `, Object.values(a) ); const o = { "nom":"dias","postnom1":"luy","postnom2":"nzoyif" }; console.dir(`o = `, o, `Object.entries(a) = `, Object.entries(a), `Object.keys(a) = `, Object.keys(a), `Object.values(a) = `, Object.values(a) ); console.log("Object.entries(a)[0] = ", Object.entries(a)[0], Object.entries(a)["0"]); console.log("Object.entries(o)[0] = ", Object.entries(o)[0], Object.entries(o)[0]); console.log("Object.entries(a)[0] = ", Object.entries(a)[0][0], Object.entries(a)[0][1]); console.log("Object.entries(o)[0] = ", Object.entries(o)[0][0], Object.entries(o)[0][1]); console.log("Object.keys(a)[0] = ", Object.keys(a)[0], Object.keys(a)["0"]); console.log("Object.keys(o)[0] = ", Object.keys(o)[0], Object.keys(o)[0]); console.log("Object.values(a)[0] = ", Object.values(a)[0], Object.values(a)["0"]); console.log("Object.values(o)[0] = ", Object.values(o)[0], Object.values(o)[0]); console.log("Object.values(o)'[nom...'] = ", o['nom'], o['postnom1'], o['postnom2']); </script> Exécution avec Firefox Quantum 64.0b13 : Pour l’Array « a » : Associated Arrays - 4/12 - jeudi, 4. avril 2019 (10:47 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII Pour l’objet « o » : Associated Arrays - 5/12 - jeudi, 4. avril 2019 (10:47 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII Mais alors, qu’est-ce qu’une « Associated Array » ? Vulgairement parlant, c’est ni plus ni moins, un « littéral d’objet » sans « propriétés » et sans « méthodes » ajoutées. Les éléments d’une « Array associative » sont dynamiquement ajoutés avec la syntaxe suivante : arrayAssociative["key"] = value; alors que pour un objet ça se fait avec la syntaxe suivante : objet . "key" = value; <script type="text/javascript"> "use strict"; const a = {"nom":"dias", "prenom1":"luy"}; console.log(`a = `, a) ; console.log(`a["nom"] = `, a["nom"]) ; Associated Arrays - 6/12 - jeudi, 4. avril 2019 (10:47 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII console.log(`a["prenom1"] = `, a["prenom1"]); const e1 = 'a["prenom2"] = "nzoyif"'; // Assignation pour Array associative. console.log(``.padStart(5,"*"),`${e1} => ${eval(e1)}`); console.dir(`a = `, a); console.dir(`a["nom"] = ${a["nom"]} a["prenom1"] = ${a["prenom1"]} // Notez les crochets a.prenom2 = ${a.prenom2} // Notez le point` ); console.log("=".repeat(25)); const o = { "nom":"dias","prenom1":"luy" }; console.log(`o = `, o) ; console.log(`o["nom"] = `, o["nom"]) ; console.log(`o["prenom1"] = `, o["prenom1"]); const e2 = 'o.prenom2 = "nzoyif"'; // Assignation pour objet hash. console.log(``.padStart(5,"*"),`${e2} => ${eval(e2)}`); console.dir(`o = `, o); console.dir(`o["nom"] = ${o["nom"]} // Notez les crochets o.prenom1 = ${o.prenom1} // Notez le points. o["prenom2"] = ${o["prenom2"]}` ); </script> Pour l’Array Associative : Associated Arrays - 7/12 - jeudi, 4. avril 2019 (10:47 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII Pour l’objet : Une des caractéristiques de JavaScript c’est la « PLÉTHORISATION » des possibilités, peut-être pour répondre aux habitudes diversifiées de plusieurs programmeurs venant des plates-formes différentes ! Kinshasa, le jeudi, 4. avril 2019 (10:47 ). Associated Arrays - 8/12 - jeudi, 4. avril 2019 (10:47 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII Mots-clés : Arrays typées, ArrayBuffer, Associative Array, tableaux associatifs, tableau associatif, Arrays associative, Arrays associatives, littéraux d’objet, objet hash, littérale de chaîne, littéral d’objet, pléthorisation, JavaScript, EcmaScript DIASOLUKA Nz. Luyalu Docteur en Médecine, Chirurgie & Accouchements (1977), CNOM : 0866 - Spécialiste en ophtalmologie (1980) Études humanités : Scientifique - Mathématiques & Physique. Informaticien-amateur, Programmeur et WebMaster. Chercheur indépendant, autonome et autofinancé, bénévole, sans aucun conflit d’intérêt ou liens d'intérêts ou contrainte promotionnelle avec qui qu’il soit ou quelqu’organisme ou institution / organisation que ce soit, étatique, paraétatique ou privé, industriel ou commercial en relation avec le sujet présenté. +243 - 851278216 - 899508675 - 991239212 - 902263541 - 813572818 [email protected] Autre Lecture : https://www.scribd.com/document/374738470/Le-Plus-Grand-Secret-de-LaCreation Associated Arrays - 9/12 - jeudi, 4. avril 2019 (10:47 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII D’autres publications pouvant aussi intéresser : • https://www.scribd.com/document/377036251/LeDosage-Des-Medicaments-en-Cac-Cas • https://www.scribd.com/document/377035454/LeHasard-Des-Thermometres-Non-contact-a-Infrarouge • https://www.scribd.com/document/376222482/PetiteIntroduction-Aux-Fonctions-JavaScript • https://www.scribd.com/document/376221919/La-Foien-Jesus-Christ-Pour-Quoi-Faire • https://www.scribd.com/document/375689778/Lacuitevisuelle-angulaire • https://www.scribd.com/document/375349851/Lavariable-This • https://www.scribd.com/document/375024162/FonctionsImbriquees-en-JS • https://www.scribd.com/document/374789297/FormatInterne-Des-Objets-JavaScript • https://www.scribd.com/document/374788758/Iterationsen-JavaScript • https://www.scribd.com/document/374738470/Le-PlusGrand-Secret-de-La-Creation • https://www.scribd.com/document/374597969/NouvelleFormule-d-IMC-indice-de-doduite-Selon-Dr-Diasoluka • https://www.scribd.com/document/373847209/PropertyDescriptors • https://www.scribd.com/document/373833282/l-ObjetAssociated Arrays - 10/12 - jeudi, 4. avril 2019 (10:47 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII Global-Window • https://www.scribd.com/document/372665249/JavascriptTome-II • https://www.scribd.com/document/355291488/motiliteoculaire-2 • https://www.scribd.com/document/355291239/motiliteoculaire-I • https://www.scribd.com/document/355290248/Script-dAnalyses-Des-Reflexes-Pupillomoteurs • https://www.scribd.com/document/321168468/Renseigne ments-Id-et-Anthropometriques • https://www.scribd.com/document/320856721/Emission31-Jul-2016 • https://www.scribd.com/document/318182982/Complicati on-Visuelle-du-Traitement-de-La-Malaria • https://www.scribd.com/document/318180637/RapportEntre-Oxymetrie-Et-Type-Respiration • https://www.scribd.com/document/315746265/Classificati on-Des-Medicaments • https://www.scribd.com/document/315745909/Incongruen ces-Heresies-et-Heterodoxies-de-la-Notion-deLaboratoire • https://www.scribd.com/document/315745725/RapportAssociated Arrays - 11/12 - jeudi, 4. avril 2019 (10:47 ) J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII Entre-Oxymetrie-Et-Type-Respiration Associated Arrays - 12/12 - jeudi, 4. avril 2019 (10:47 )