Académique Documents
Professionnel Documents
Culture Documents
VOL. XXII
Les « Maps » sont des « Arrays » presque comme des « Associative Ar-
rays », 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 « Associa-
tives Arrays ».
console.log(map.size); // => 5
console.log(map.has(a)); // => true
console.log(map.has([1])); // => false
console.log(map.get(a)); // => 64
console.log(map.get(18)); // => 35
console.log(map.get(true)); // => 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)
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>
console.log(map.size); // => 5
console.log(map.has(a)); // => true
console.log(map.has([1])); // => false
console.log(map.get(a)); // => 64
console.log(map.get(18)); // => 35
console.log(map.get(true)); // => 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]
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>
Les « WeakMap » :
console.log(wmap.get(a)); // => 1
console.log(wmap.get(b)); // => 4
console.log(wmap.get(c)); // => 3
wmap.delete(b);
console.log(wmap.get(b)); // => undefined
</script>
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 ...
console.log(bruch);
// Object { }
// Oeil {}
console.log(bruch.dispOrgan());
// Membane de Bruch
console.log(bruch.dispOrganPlus()[0]
, bruch.dispOrganPlus()[1]);
// Membane de Bruch Surchargé
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éfi-
ni, ou alors une chaîne littérale (entre guillemets).
x.set('objk', objectKey);
console.log(x.get('objk'));
// Object { 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""
// }
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" => {…},
console.log(fromArray.get(0)); // array0
console.log(fromArray.get(obj_key)); // array1
console.log();
// 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());
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.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 :
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 ( ) :
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 */
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 }
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>
Firefox 64.0b13 :
Mots-clés :
diasfb@mail2world.com
Autre Lecture :
https://www.scribd.com/document/374738470/Le-Plus-Grand-Secret-de-La-
Creation