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 )