javascript - maps & weakmaps

publicité
Pour Débutants
JAVASCRIPT (Programmation Internet)
VOL. XXII
J.B. Dadet DIASOLUKA Luyalu Nzoyifuanga
+243 - 851278216 - 899508675 - 995624714 - 902263541 - 813572818
[email protected]
LES « Maps » && « WeakMaps » :
Les « Maps » sont des « Arrays » presque comme des « Associative Arrays », leurs données sont regroupées dans des couples « key : value ».
Deux différences c’est que
1.
Dans les « Maps » les couples « key : value » sont regroupés dans
des Arrays à seulement ces deux éléments, ces couples étant séparés entre
eux par une virgule ;
2.
Le tout est délimité/regroupé dans une grande array le « Map » délimitée par des crochets au lieu des accolades contrairement aux « Associatives Arrays ».
<script type="text/javascript"> "use strict";
var map = new Map([
['a', 20], [Date.now(), 54],
[45, Date.now()], [18, 'c']
]);
console.log(map);
// Map(4) {
//
a -> 20, 1544283193937 -> 54,
//
45 -> 1544283193937, 18 -> "c"
// }
for(var el of map) console.log(el);
var t=`${"Keys".padEnd(7," ")} = | `;
for(var cle of map.keys()) t += cle + ` | `;
console.log(t);
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
var t=`${"Values".padEnd(7," ")} = * `;
for(var val of map.values()) t += val + ` * `;
console.log(t);
</script>
Maps && WeakMaps
- 2/27 -
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
Quelques méthodes de l’objet « Map ( ) » :
<script type="text/javascript"> "use strict";
var a = [Date.now()];
console.log(a); // Array [ 1544273035052 ]
var map = new Map([['a', 20], [18, 35], [91, 54]]);
console.log(map);
// Firefox : Map { a -> 20, 18 -> 35, 91 -> 54 }
// Yandex : Map(2) {"a" => 20, 18, 91 -> 54 => 35}
map.set(a, 64).set(true, 85);
console.log(map);
// Map(4) { a -> 20, 18 -> 35, 91 -> 54, (1) […] -> 64,
true -> 85 }
Maps && WeakMaps
- 3/27 -
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
// Map(4) {"a" => 20, 18 => 35, 91 -> 54, Array(1) => 64,
true => 85}
console.log(map.size);
console.log(map.has(a));
console.log(map.has([1]));
console.log(map.get(a));
console.log(map.get(18));
console.log(map.get(true));
//
//
//
//
//
//
=>
=>
=>
=>
=>
=>
5
true
false
64
35
85
let k="+ ", v="* ";
map.forEach(function (val, key) {
v+=val + ` * `;
k+=key + ` + `;
});
console.log(k);
// => + a + 18 + 91 + 1544274283091 + true +
console.log(v);
// => * 20 * 35 * 54 * 64 * 85 *
map.delete(a);
console.log(map.size);
// => 4
console.log(map.get(a));
// => undefined
console.log(Array.from(map));
// Firefox :
// => Array(4) [ (2) […], (2) […], (2) […], (2) […] ]
// (4) […]
//
0: Array [ "a", 20 ]
//
1: Array [ 18, 35 ]
//
2: Array [ 91, 54 ]
//
3: Array [ true, 85 ]
//
length: 4
//
<prototype>: Array []
//
// Yandex :
// => (4) (4) [Array(2), Array(2), Array(2), Array(2)]
//
0: (2) ["a", 20]
//
1: (2) [18, 35]
//
2: (2) [91, 54]
//
3: (2) [true, 85]
//
length: 4
//
__proto__: Array(0)
var map = new Map([
Maps && WeakMaps
- 4/27 -
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
['a', 56], [Date.now(), 40],
[78, 'c'], [41, Date.now()]
]);
console.log(map);
// Map(4) { a -> 56, 1544277041459 -> 40,
//
78 -> "c", 41 -> 1544277041459 }
let kya=[], vla=[];
for (var [cle, valeur] of map) {
kya=kya.concat(cle);
vla.push(valeur);
}
console.log(kya);
// Array(4) [ "a", 1544277173449, 78, 41 ]
console.log(vla);
// Array(4) [ 56, 40, "c", 1544277173449 ]
let vl = [];
for (let valeurs of map.values()){
vl=vl.concat(valeurs);
}
console.log(vl);
// Array(4) [ 56, 40, "c", 1544277643496 ]
let ky = [];
for (var cles of map.keys()){
ky.push(cles);
}
console.log(ky);
// => Array(4) [ "a", 1544277741029, 78, 41 ]
</script>
Lisez les commentaires dans le code ci-dessous :
<script type="text/javascript"> "use strict";
var a = [Date.now()];
console.log(a); // Array [ 1544273035052 ]
var map = new Map([['a', 20], [18, 35], [91, 54]]);
console.log(map);
// Firefox : Map { a -> 20, 18 -> 35, 91 -> 54 }
// Yandex : Map(2) {"a" => 20, 18, 91 -> 54 => 35}
Maps && WeakMaps
- 5/27 mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
map.set(a, 64).set(true, 85);
console.log(map);
// Map(4) { a -> 20, 18 -> 35, 91 -> 54, (1) […] -> 64,
true -> 85 }
// Map(4) {"a" => 20, 18 => 35, 91 -> 54, Array(1) => 64,
true => 85}
console.log(map.size);
console.log(map.has(a));
console.log(map.has([1]));
console.log(map.get(a));
console.log(map.get(18));
console.log(map.get(true));
//
//
//
//
//
//
=>
=>
=>
=>
=>
=>
5
true
false
64
35
85
let k="+ ", v="* ";
map.forEach(function (val, key) {
v+=val + ` * `;
k+=key + ` + `;
});
console.log(k);
// => + a + 18 + 91 + 1544274283091 + true +
console.log(v);
// => * 20 * 35 * 54 * 64 * 85 *
map.delete(a);
console.log(map.size);
// => 4
console.log(map.get(a));
// => undefined
console.log(Array.from(map));
// Firefox :
// => Array(4) [ (2) […], (2) […], (2) […], (2) […] ]
// (4) […]
//
0: Array [ "a", 20 ]
//
1: Array [ 18, 35 ]
//
2: Array [ 91, 54 ]
//
3: Array [ true, 85 ]
//
length: 4
//
<prototype>: Array []
//
// Yandex :
// => (4) (4) [Array(2), Array(2), Array(2), Array(2)]
//
0: (2) ["a", 20]
//
1: (2) [18, 35]
//
2: (2) [91, 54]
Maps && WeakMaps
- 6/27 -
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
//
3: (2) [true, 85]
//
length: 4
//
__proto__: Array(0)
JavaScript Tome-XXII
var map = new Map([
['a', 56], [Date.now(), 40],
[78, 'c'], [41, Date.now()]
]);
console.log(map);
// Map(4) { a -> 56, 1544277041459 -> 40,
//
78 -> "c", 41 -> 1544277041459 }
let kya=[], vla=[];
for (var [cle, valeur] of map) {
kya=kya.concat(cle);
vla.push(valeur);
}
console.log(kya);
// Array(4) [ "a", 1544277173449, 78, 41 ]
console.log(vla);
// Array(4) [ 56, 40, "c", 1544277173449 ]
let vl = [];
for (let valeurs of map.values()){
vl=vl.concat(valeurs);
}
console.log(vl);
// Array(4) [ 56, 40, "c", 1544277643496 ]
let ky = [];
for (var cles of map.keys()){
ky.push(cles);
}
console.log(ky);
// => Array(4) [ "a", 1544277741029, 78, 41 ]
</script>
Maps && WeakMaps
- 7/27 -
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
Les « WeakMap » :
Lisez les commentaires :
<script type="text/javascript"> "use strict";
var a = [96, 10] , b = [43,[67, 84]] , c = [96, 42, 64];
var wmap = new WeakMap([[a, 1], [b, 2]]);
console.log(wmap);
// WeakMap { (2) […] -> 2, (2) […] -> 1 }
//
<entries>?
//
0: Array [ … ] ? 2
//
<key>: Array [ … ]
//
<key>: (2) […]
//
0: 96
//
1: 10
//
length: 2
//
<prototype>: Array []
//
<value>: 2
//
1: Array [ … ] ? 1
//
<key>: Array [ … ]
//
<key>: (2) […]
//
0: 43
//
1: Array [ 67, 84 ]
//
1: (2) […]
//
0: 67
//
1: 84
//
length: 2
//
<prototype>: Array []
//
length: 2
//
<prototype>: Array []
//
<value>: 2
//
<prototype>: Object { … }
wmap.set(c, 3).set(b, 4);
console.log(wmap);
// WeakMap(3) { (2) […] -> 1, (2) […] -> 4, (3) […] -> 3 }
// WeakMap(3)
//
<entries>
//
0: Array [ … ] -> 1
//
0: (2) […] ? 1
//
<key>: Array [ … ]
Maps && WeakMaps
- 8/27 -
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
//
<key>: (2) […]
//
0: 96
//
1: 10
//
length: 2
//
<prototype>: Array []
//
<value>: 1
//
1: Array [ … ] -> 4
//
1: (2) […] -> 4
//
<key>: Array [ … ]
//
<key>: (2) […]
//
0: 43
//
1: Array [ 67, 84 ]
//
length: 2
//
<prototype>: Array []
//
<value>: 4
//
2: Array(3) [ … ] -> 3
//
2: (3) […] -> 3
//
<key>: Array(3) [ … ]
//
<key>: (3) […]
//
0: 96
//
1: 42
//
2: 64
//
length: 3
//
<prototype>: Array []
//
<value>: 3
//
<prototype>: Object { … }
JavaScript Tome-XXII
console.log("wmap.has([96, 42, 64]) = ",
wmap.has([96, 42, 64])); // => false
console.log(wmap.has(c));
// => true
console.log(wmap.get(a));
console.log(wmap.get(b));
console.log(wmap.get(c));
// => 1
// => 4
// => 3
wmap.delete(b);
console.log(wmap.get(b));
</script>
// => undefined
Le « get » et le « set » avec les « weakMap » :
<script type="text/javascript"> "use strict";
var Oeil = (function () {
Maps && WeakMaps
- 9/27 -
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
console.log("Dans « Oeil »");
var organes = new WeakMap;
JavaScript Tome-XXII
console.log("this = ",this);
// this = undefined
function Oeil(lequel) {
organes.set(this, lequel);
console.log("this = ",this);
// this = Object { }
// this = Oeil {}
}
Oeil.prototype.dispOrgan = function () {
return organes.get(this);
};
Oeil.prototype.dispOrganPlus = function () {
return [organes.get(this)," Surchargé"];
};
return Oeil;
})();
console.log("Départ ...");
// Départ ...
var bruch = new Oeil('Membane de Bruch');
// Dans « Oeil »
console.log("Après « Oeil »");
// Après « Oeil »
console.log(bruch);
// Object { }
// Oeil {}
console.log(bruch.dispOrgan());
// Membane de Bruch
console.log(bruch.dispOrganPlus()[0]
, bruch.dispOrganPlus()[1]);
// Membane de Bruch Surchargé
for (var idx in bruch)
console.log("* for (var idx in bruch) => ",idx);
// * for (var idx in bruch) => dispOrgan
Maps && WeakMaps
- 10/27 -
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
// * for (var idx in bruch) =>
</script>
Maps && WeakMaps
- 11/27 -
JavaScript Tome-XXII
dispOrganPlus
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
Maps && WeakMaps
- 12/27 -
JavaScript Tome-XXII
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
Ne confondez pas la méthode « Array . map » (qui permet
d’appliquer un même traitement à chaque membre d’une array) et
l’objet Map (capitalisé) qui permet de créer un objet HashTable ou
Dictionary. Ce HashTable est comme un objet ordinaire avec des
clés et des valeurs associées, sauf qu’un Map peut utiliser comme
clé n’importe quoi sauf les mots clés (numérique, string ou objet),
alors que les autres objets n’admettent que des strings comme clés.
Pour accéder aux clés Map utilise les méthodes « get » et « set ».,
alors que les objets utilisent le point séparateur (« objet . clé »).
La clé d’un Map doit être soit un nombre (entre guillemets ou pas :
les deux sont distincts), soit une chaîne représenté un objet déjà défini, ou alors une chaîne littérale (entre guillemets).
<script type="text/javascript"> "use strict";
let y = new Map(); // objet Map
y.set(2018, 'val de 2018');
y.set("25", 'val de 25');
y.set("z", 'val de "z"');
let x = new Map(); // objet Map
let objectKey = { key: 'keyvalue' }; // litt d'objet.
console.log(objectKey); // Object { key: "key-value" }
console.log(objectKey.key); // keyvalue
console.log(x.get(objectKey)); // undefined
x.set(1, 'clé numérique');
console.log(x.get(1)); // clé numérique
Maps && WeakMaps
- 13/27 -
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
x.set('1', 'clé string');
console.log(x.get('1')); // clé string
x.set('objk', objectKey);
console.log(x.get('objk'));
// Object { key: "keyvalue" }
x.set(objectKey, ['une', 'Array', 'comme', 'val-eur']);
console.log(x.get(objectKey));
// (4) ["une", "Array", "comme", "valeur"]
console.log(objectKey.key); // keyvalue
let fv=function(){this.pr="Property"};
x.set(fv, 'objet expression de fonction');
console.log(x.get(fv));
// objet expression de fonction
console.log(y);
// Map(3) {
//
2018 => "val de 2018",
//
"25" => "val de 25",
//
"z" => "val de "z""
// }
x.set(y, 'Et même un autre objet Map');
console.log(x.get(y));
// Et même un autre objet Map
// L'objet Map clé ici n'altère pas
// l'objet Map de départ.
console.log(y);
// Map(3) {
//
2018 => "val de 2018",
//
"25" => "val de 25",
//
"z" => "val de "z""
// }
// L'objet Map de départ n'a pas été altéré.
console.log(x);
// Map(6) {
//
1 => "clé numérique",
//
"1" => "clé string",
//
"objk" => {…},
Maps && WeakMaps
- 14/27 -
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
//
{…} => Array(4),
//
ƒ => "objet expression de fonction",
//
…
// }
</script>
Maps && WeakMaps
- 15/27 -
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
Création d’objet Map avec des itérables (array d’arrays ou un généMaps && WeakMaps
- 16/27 -
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
rateur) : new Map ( iterable : Object ).
<script type="text/javascript"> "use strict";
var obj_key = { prop: 'property' };
var fromArray = new Map(
[[0, 'array0'], [obj_key, 'array1']]
);
// Initialisation de fromArray
// (nouvel objet Map)
// avec une itération d'arrays.
console.log(fromArray.get(0)); // array0
console.log(fromArray.get(obj_key)); // array1
console.log();
// Gnération d'entrées de Map
// avec une fonction génératrice.
var generator_fct = function*() {
yield [15, 'g15'];
yield [obj_key, 'gObK'];
};
// Initialisation de fromGenerator
// (nouvel objet Map)
// avec les entrées générées par un générateur.
var fromGenerator = new Map(generator_fct());
// Affichage des entrées de fromGenerator.
console.log(fromGenerator.get(15)); // g15
console.log(fromGenerator.get(obj_key)); // gObK
console.log(fromGenerator.size); // 2
fromGenerator.set('add', 'value of add');
console.log(fromGenerator.size); // 3
fromGenerator.delete(15); // Retire
console.log(fromGenerator);
// Map(2) {{…} => "gObK", "add" => "value of add"}
fromGenerator.clear(); // Efface tout
console.log(fromGenerator); // Map { }
</script>
Maps && WeakMaps
- 17/27 -
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
Maps && WeakMaps
- 18/27 -
JavaScript Tome-XXII
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
Parcourons quelques propriétés de Map :
fromGenerator.hasOwnProperty() : false
fromGenerator.valueOf() : Map {
15 -> "g15",
{…} -> "gObK"
}
fromGenerator.toString() : [object Map]"
fromGenerator.toSource() : "({})"
fromGenerator.size : 2
fromArray.has(0) : true
fromGenerator.has(15) : true
fromGenerator.has(150) : false
Le prototype de Map :
Maps && WeakMaps
- 19/27 -
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
Map()
length: 0
name: "Map"
prototype: {…}
clear: function clear()
constructor: function Map()
delete: function delete()
entries: function entries()
forEach: function forEach()
get: function get()
has: function has()
keys: function keys()
set: function set()
size: Getter
values: function values()
Symbol(Symbol.iterator): undefined
Symbol(Symbol.toStringTag): undefined
__proto__: Object { … }
Symbol(Symbol.species): undefined
__proto__: function ()
Map . entries ( ) :
<script type="text/javascript"> "use strict";
var iMap = new Map(
[ [1, 'valueof 1'], ['s', 'valueof s'],
['9', 'valueof 9'] ]);
// BOUCLE FOR(...OF...) : Les entrées sont
// returnées par iMap[Symbol.iterator]
for (var value of iMap) { console.log(value); }
// Array [ 1, "valueof 1" ]
// Array [ "s", "valueof s" ]
// Array [ "9", "valueof 9" ]
// ITÉRATION EXPLICITE à travers les entrées
for (var value of iMap.values()) {
Maps && WeakMaps
- 20/27 -
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
console.log(value);
}
// valueof 1
// valueof s
// valueof 9
JavaScript Tome-XXII
for (var entry of iMap.entries()) {
console.log(entry);
}
// Array [ 1, "valueof 1" ]
// Array [ "s", "valueof s" ]
// Array [ "9", "valueof 9" ]
// PARCOURS MANUEL DE L'ITÉRATEUR
var entries = iMap.entries();
console.dir(entries.next());
console.dir(entries.next());
console.dir(entries.next());
console.dir(entries.next());
/*
Object
done: false
value: (2) [1, "valueof 1"]
Object
done: false
value: (2) ["s", "valueof s"
Object
done: false
value: (2) ["9", "valueof 9"]
Object
done: true
value: undefined
*/
// ITÉRATION AVEC FOREACH
iMap.forEach(function(val, cle, obj) {
console.log(
'clé: "' + cle + '", val: "' + val + '" '+obj);
});
// clé: "1", val: "valueof 1" [object Map]
// clé: "s", val: "valueof s" [object Map]
// clé: "9", val: "valueof 9" [object Map]
Maps && WeakMaps
- 21/27 -
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
// FOR (...OF...) pour parcourir l'itérateur
for(var cle of iMap.keys()) { console.log(cle); }
// 1
// s
// 9
for(var val of iMap.values()) { console.log(val); }
// valueof 1
// valueof s
// valueof 9
// UN AUTRE ACCÈS MANUEL À L'ITÉRATEUR
var cles = iMap.keys();
console.log(cles.next());
console.log(cles.next());
console.log(cles.next());
console.log(cles.next());
// Object { value: 1, done: false }
// Object { value: "s", done: false }
// Object { value: "9", done: false }
// Object { value: undefined, done: true }
var vals = iMap.values();
console.log(vals.next());
console.log(vals.next());
console.log(vals.next());
console.log(vals.next());
// Object { value: "valueof 1", done: false }
// Object { value: "valueof s", done: false }
// Object { value: "valueof 9", done: false }
// Object { value: undefined, done: true }
</script>
I. Remplacer des membres d’Array par d’autres :
<script type = "text/javascript"> "use strict";
// Remplacez tous les "Louis" par "Rose" et "Blue".
function suppress(parr, val) {
var i;
Maps && WeakMaps
- 22/27 -
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
while ((i = parr.indexOf(val)) != -1) {
parr.splice(i, 1,"*ROSE*","*MAGENTA*");
}
return parr;
}
let arr=["Louis", "Delon", "Keriy", "Louis"]
let narr=suppress(arr, "Louis")
console.log(narr);
</script>
Maxthon v5.2.6.1000 et Opera Version 57.0.3098.106 :
Firefox 64.0b13 :
Maps && WeakMaps
- 23/27 -
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
Yandex Version 18.11.1.385 beta :
Kinshasa, le mardi, 26. mars 2019 (1:59 ).
Maps && WeakMaps
- 24/27 -
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
Mots-clés :
Maps, Arrays typées, ArrayBuffer, WeakMap, Typed Array, Array, key,
value, JavaScript, EcmaScript, Associatives Arrays, Get, Set
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
D’autres publications pouvant aussi intéresser :
Maps && WeakMaps
- 25/27 -
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
• https://www.scribd.com/document/377036251/Le-DosageDes-Medicaments-en-Cac-Cas
• https://www.scribd.com/document/377035454/Le-HasardDes-Thermometres-Non-contact-a-Infrarouge
• https://www.scribd.com/document/376222482/PetiteIntroduction-Aux-Fonctions-JavaScript
• https://www.scribd.com/document/376221919/La-Foi-enJesus-Christ-Pour-Quoi-Faire
• https://www.scribd.com/document/375689778/Lacuitevisuelle-angulaire
• https://www.scribd.com/document/375349851/La-variableThis
• 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/Iterations-enJavaScript
• 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-ObjetGlobal-Window
• https://www.scribd.com/document/372665249/JavascriptTome-II
• https://www.scribd.com/document/355291488/motiliteoculaire-2
• https://www.scribd.com/document/355291239/motiliteMaps && WeakMaps
- 26/27 -
mardi, 26. mars 2019 (1:59 )
J.D.B. DIASOLUKA Nz. Luyalu
JavaScript Tome-XXII
oculaire-I
• https://www.scribd.com/document/355290248/Script-dAnalyses-Des-Reflexes-Pupillomoteurs
•
https://www.scribd.com/document/321168468/Renseignement
s-Id-et-Anthropometriques
• https://www.scribd.com/document/320856721/Emission-31Jul-2016
•
https://www.scribd.com/document/318182982/ComplicationVisuelle-du-Traitement-de-La-Malaria
• https://www.scribd.com/document/318180637/RapportEntre-Oxymetrie-Et-Type-Respiration
•
https://www.scribd.com/document/315746265/ClassificationDes-Medicaments
•
https://www.scribd.com/document/315745909/IncongruencesHeresies-et-Heterodoxies-de-la-Notion-de-Laboratoire
• https://www.scribd.com/document/315745725/RapportEntre-Oxymetrie-Et-Type-Respiration
Maps && WeakMaps
- 27/27 -
mardi, 26. mars 2019 (1:59 )
Téléchargement