Académique Documents
Professionnel Documents
Culture Documents
3000000000.1 | 0 ?
Ça donnera
3000000000.1 | 0 = -1294967296
Les Typed Arrays (Arrays typés) traitent tous leurs éléments constitutifs
comme étant de leur propre type donc d’un même type, contrairement aux
Arrays ordinaires qui peuvent regrouper toute sorte de types. Les deux
groupes principaux d’Arrays typées sont :
2. Les Arrays Non Signées (Unsigned Integer Arrays) dont tous les
bits sont considérés comme pondérant le nombre : les Uint-
XArray.
Dans les deux cas ci-dessus, « X » peut avoir l’une des valeurs suivantes :
8, 16, 32.
« Float32Array » et « Float64Array ».
(function(){
let b=null;
console.log("Parce que En DOUBLE-WORD (32 bits) : ")
console.log(m +"d = "+ (b=m.toString(2))+"b");
console.log("10110010110100000101111000000000b =");
console.log(
"1011'0010''1101'0000'''0101'1110''0000'0000b = ",
m|0 + "d");
console.log(
"Notez le bit (ou flag) du signe qui est à 1.");
}
)();
console.log("".padEnd(3,"\n"));
console.log("ES10 n'utilise pas encore le 64 bits : ")
console.log("");
console.log("");
console.log("");
console.log("");
test.html:19 3000000000.1d =
10110010110100000101111000000000.000110011001100110011b
test.html:20 10110010110100000101111000000000b =
test.html:21
1011'0010''1101'0000'''0101'1110''0000'0000b =
-1294967296
test.html:24 Notez le bit (ou flag) du signe qui est à 1.
test.html:30
10110010110100000101111000000000b =
1011'0010''1101'0000'''0101'1110''0000'0000b = -1294967296
Size
Equiva-
Value in Descrip- Web IDL
Type lent C
Range byte tion type
type
s
8-bit two's
comple-
-128 to
Int8Array 1 ment byte int8_t
127
signed
integer
8-bit un-
Uint8Array 0 to 255 1 signed octet uint8_t
integer
8-bit un-
Uint8ClampedAr signed
0 to 255 1 octet uint8_t
ray integer
(clamped)
16-bit
two's
-32768 to comple-
Int16Array 2 short int16_t
32767 ment
signed
integer
16-bit
unsigned uint16_
Uint16Array 0 to 65535 2 unsigned
short t
integer
32-bit
-
two's
21474836
comple-
Int32Array 48 to 4 long int32_t
ment
21474836
signed
47
integer
32-bit
IEEE floati
ng point
1.2x10- unres-
38 to number ( 7
Float32Array 4 tricted float
significant
3.4x1038 float
digits e.g.
1.1234567
)
64-bit
IEEE float-
ing point
5.0x10- unres-
324 to number
Float64Array 8 tricted double
(16 signifi-
1.8x10308 double
cant digits
e.g.
1.123...15)
Int8Array.BYTES_PER_ELEMENT =1 test.html:2:5
Uint8Array.BYTES_PER_ELEMENT =1 test.html:4:5
Uint8ClampedArray.BYTES_PER_ELEMENT =1 test.html:6:5
Int16Array.BYTES_PER_ELEMENT =2 test.html:8:5
Uint16Array.BYTES_PER_ELEMENT =2 test.html:10:5
Int32Array.BYTES_PER_ELEMENT =4 test.html:12:5
Uint32Array.BYTES_PER_ELEMENT =4 test.html:14:5
Float32Array.BYTES_PER_ELEMENT =4 test.html:16:5
Float64Array.BYTES_PER_ELEMENT =8 test.html:18:5
console.log("arr.BYTES_PER_ELEMENT=" ,
arr.BYTES_PER_ELEMENT);
console.log("arr.length =" ,
arr.length);
console.log("arr.byteLength =" ,
arr.byteLength);
</script>
arr.BYTES_PER_ELEMENT= 4 test.html:5:3
arr.length = 10 test.html:8:3
arr.byteLength = 40 test.html:11:3
Mais les Typed Arrays sont des objets itérables, c’est-à-dire qu’on peut
aussi les parcourir avec la méthode « .next » de leur itérateur.
« arr.entries() »
pour parcourir toutes les entries (labels ET valeurs) ou
« arr.keys() »
pour parcourir toutes les entries (labels) ou
« arr.values() »
pour parcourir seulement les valeurs (values).
t="";
for(let i=0; i<arr.length; i++){
t += iterator.next().value + " | ";
}
console.log(t);
console.log("".padEnd(25,"="));
t="";
for(let i=0; i<arr.length; i++){
t += iterator.next().value + " | ";
}
console.log(t);
console.log("".padEnd(25,"="));
t="";
Différents types d’Arrays - 11/76 - dimanche, 24. mars 2019 (9:46 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII
for(let i=0; i<arr.length; i++){
t += iterator.next().value + " | ";
}
console.log(t);
console.log("".padEnd(25,"="));
t="";
for(let k=0,l=arr.length ; k<l ; k++){
t+="arr["+k+"] =" + arr[k] + " | ";
}
console.log(t);
</script>
========================= test.html:19:1
0 | 1 | 2 | 3 | 4 |
5 | 6 | 7 | 8 | 9 | test.html:29:4
========================= test.html:32:1
58 | 75 | 42 | 32 | 92 |
79 | 35 | 84 | 18 | 11 | test.html:42:4
========================= test.html:45:1
Un autre exemple :
console.log("");
console.log("\n\narr.entries()");
it = arr.entries(); // Itérateur lié aux entries.
console.log(it);
console.log("\n\narr.values()");
it = arr.values(); // Itérateur lié aux values.
console.log(it);
Notez aussi que déclarer une Array « const » n’empêche pas de « jouer »
librement avec tous ses éléments.
<prototype>: Object { … }
__defineGetter__:
function __defineGetter__()
__defineSetter__:
function __defineSetter__()
__lookupGetter__:
function __lookupGetter__()
__lookupSetter__:
function __lookupSetter__()
hasOwnProperty:
function hasOwnProperty()
isPrototypeOf:
function isPrototypeOf()
propertyIsEnumerable:
function propertyIsEnumerable()
toLocaleString:
function toLocaleString()
<prototype>: Object { … }
<prototype>: Object { … }
<prototype>: Object { … }
arr.entries() test.html:25:4
Array Iterator { } test.html:27:4
arr.keys() test.html:37:4
Array Iterator { } test.html:39:4
it.next().value= Array [ 0, 65 ] test.html:42:7
it.next().value= Array [ 1, 48 ] test.html:42:7
it.next().value= Array [ 2, 91 ] test.html:42:7
Hors liste : undefined test.html:45:4
arr.values() test.html:49:4
Array Iterator { } test.html:51:4
it.next().value= 65 test.html:54:7
it.next().value= 48 test.html:54:7
it.next().value= 91 test.html:54:7
Hors liste : undefined test.html:57:4
« r = Array . filter ( fc ); »
console.log("");
console.log(
String(k).padStart(3," ") ,
" : " , r);
eg[r[0]]=r[0];c[r[0]]+=1;
}
let t="";
for(let k=0,l=ar.length ; k<=Max ; k++){
if(eg[k]) {
t+=eg[k]+" ["+c[k]+"×] | ";
n++; tot+=c[k]
Différents types d’Arrays - 20/76 - dimanche, 24. mars 2019 (9:46 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII
}
}
console.log(t);
console.log("Un Total de",tot,"nombres,");
console.log("dont",n,"différents.");
</script>
TypedArray initiale:
15,17,12,10,14,15,12,11,10,16,20,11,14,20,17,19,13,11,19,20,15,
17,18,17,18,17,15,13,15,15,11,13,16,17,16,20,14,10,20,14,20,16,
17,14,15,18,13,20,18,18
test.html:16:4
Les Arrays typées peuvent être parcourues soit avec une boucle ordinaire
( for... el [ idx ] ) soit avec une itérateur :
console.log("".padEnd(25,"="));
t="";
for(let i=0 ; i < ar.length ; i++){
t += ar[i]+" | "
}
console.log(t);
console.log("".padEnd(25,"="));
console.log("".padEnd(25,"="));
t="";
var iterator = s.values();
for(let i=0 ; i < s.length ; i++){
t += iterator.next().value + " | ";
}
console.log(t);
</script>
Uint32Array(10) [ 30, 38, 95, 66, 69, 15, 76, 10, 92, 99 ]
test.html:7:5
Différents types d’Arrays - 23/76 - dimanche, 24. mars 2019 (9:46 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII
========================= test.html:10:1
30 | 38 | 95 | 66 | 69 | 15 | 76 | 10 | 92 | 99 |
test.html:17:5
========================= test.html:21:1
========================= test.html:30:1
66 | 69 | 15 | 76 | 10 | test.html:38:5
<script type="text/javascript">
const ar1 =
new Uint16Array([77,33,44,88,11,55,66,22,00,99 ]);
console.log("Array initiale:\n"+ar1);
console.log("Initial length ="+ar1.length);
console.log("");
const ar2 =
new Uint32Array([600,680,650 ]);
console.log("Ar1:\n"+ar1);
console.log("Ar2:\n"+ar2);
ar1.set(ar2, 3);
console.log("ar1.set(ar2, 3) =\n"+ar1);
console.log("Final length ="+ar1.length);
console.log("");
Différents types d’Arrays - 24/76 - dimanche, 24. mars 2019 (9:46 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII
console.log("");
const ar3 =
new Uint8ClampedArray([20,50,30 ]);
console.log("Ar1:\n"+ar1);
console.log("Ar3:\n"+ar3);
ar1.set(ar3, 5);
console.log("ar1.set(ar3, 5) =\n"+ar1);
console.log("Final length ="+ar1.length);
console.log("");
const ar4 =
new Uint8ClampedArray([700,750,720 ]);
console.log("Ar1:\n"+ar1);
console.log("Ar4:\n"+ar4);
ar1.set(ar4, 6);
console.log("ar1.set(ar4, 6) =\n"+ar1);
console.log("Final length ="+ar1.length);
</script>
L’Array ar1 ne peut contenir que des entiers 8 bits non signés, donc sa va-
leur maximale = 255. Tous les bits de gauche au-delà de la 8è case ou posi-
tion en comptant de la droite vers la gauche, sont ignorés.
Quant au Uint8ClampedArray
Ce sont des entiers non signés inférieurs à 255 et les valeurs supérieures à
255 sont automatiquement ramenées à 255.
Il convient donc dès le départ de bien savoir avec quelles valeurs on aura à
travailler.
<script type="text/javascript">
const ar1 =
new Uint8Array([77,33,44,88,11,55,66,22,00,99 ]);
console.log("Array initiale:\n"+ar1);
console.log("Initial length ="+ar1.length);
console.log("");
const ar2 =
new Uint32Array([600,680,650 ]);
console.log("Ar1:\n"+ar1);
console.log("Ar2:\n"+ar2);
ar1.set(ar2, 3);
console.log("ar1.set(ar2, 3) =\n"+ar1);
console.log("Final length ="+ar1.length);
console.log("");
console.log("");
const ar3 =
new Uint8ClampedArray([20,50,30 ]);
console.log("Ar1:\n"+ar1);
console.log("Ar3:\n"+ar3);
ar1.set(ar3, 5);
console.log("ar1.set(ar3, 5) =\n"+ar1);
console.log("Final length ="+ar1.length);
console.log("");
const ar4 =
new Uint8ClampedArray([700,750,720 ]);
console.log("Ar1:\n"+ar1);
console.log("Ar4:\n"+ar4);
ar1.set(ar4, 6);
console.log("ar1.set(ar4, 6) =\n"+ar1);
console.log("Final length ="+ar1.length);
</script>
<script type="text/javascript">
var arr1 = new Int32Array([44,16,38,28,40,21,75,77,28,87]);
console.log("Array initiale arr1 = ",arr1);
console.log("");
console.log("arr1.slice(2, 7) = ",arr1.slice(2, 7));
console.log("arr1 = ",arr1);
</script>
arr1.slice(2, 7) =
Int32Array(5) [ 38, 28, 40, 21, 75 ]
test.html:5:4
arr1 =
Int32Array(10) [ 44, 16, 38, 28, 40, 21, 75, 77, 28, 87 ]
test.html:6:4
Array[0]
« Array . from ( ) » est une Array polymorphe qui retourne une nouvelle
Array ordonnée, constituée de tous les éléments d’une Array, un Set ou une
Différents types d’Arrays - 29/76 - dimanche, 24. mars 2019 (9:46 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII
String sources.
Pour les « Sets », ces éléments sont retenus une et une seule fois au cas où
cet même élément se répète dans le « Set » source (c’est la définition même
de « Set » = jeu d’échantillons représentatifs).
Pour les Arrays sources, c’est le premier élément rencontré est retenu.
Pour les Hash (littéral d’objet), l’élément de l’indice en cours écrase éven-
tuellement l’élément du même indice qui vient avant.
// Array.from HASH :
// Il prend la quantité spécifiée par length,
// tous les indices de 0 à length-1.
r = Array.from(
{3:19, 1:17, 2:25, 3:12, 3:16, 0:11, 2:14, length: 6}
);
console.log(typeof r , r )
// object
// Array(6) [ 11, 17, 14, 16, undefined, undefined ]
// Array.from HASH
r = Array.from(
{0:86, 1:16, 2:12, 3:49, 4:78, 5:60, length: 3}
);
console.log(typeof r , r )
// object
// (3) [86, 16, 12]
// Array.from HASH
r = Array.from(
{0:86, 1:16, 2:12, 3:49, 4:78, 5:60, length: 8}
);
console.log(typeof r , r )
// object
// (8) [86, 16, 12, 49, 78, 60, undefined, undefined]
// Array.from HASH
r = Array.from(
Différents types d’Arrays - 32/76 - dimanche, 24. mars 2019 (9:46 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII
{0:86, 1:16, annee:12, 3:49, 4:78, 5:60, length: 6}
);
console.log(typeof r , r )
// object
// (6) [86, 16, undefined, 49, 78, 60]
// Array.from HASH
r = Array.from(
{3:86, "1":16, 4:12, 0:49, "5":60, 2:78, length: 6}
);
console.log(typeof r , r )
// object
// (6) [49, 16, 78, 86, 12, 60]
// Array.from HASH
r = Array.from(
{5:86, 1:16, 7:12, 10:49, 3:78, 9:60, length: 6}
);
console.log(typeof r , r )
// object
// (6) [undefined, 16, undefined, 78, undefined, 86]
// Array.from HASH
r = Array.from(
{5:86, 1:16, 7:12, 10:49, 3:78, 9:60, length: 11}
);
console.log(typeof r , r )
// object
// (11) [undefined, 16, undefined, 78, undefined,
// 86, undefined, 12, undefined, 60, 49]
// Array.from HASH
r = Array.from(
{3:22, 15:94, 8:65, 0:98, 11:48, length: 16}
);
console.log(typeof r , r )
// object
// (16) [98, undefined, undefined, 22, undefined,
// undefined, undefined, undefined, 65, undefined,
Différents types d’Arrays - 33/76 - dimanche, 24. mars 2019 (9:46 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII
// undefined, 48, undefined, undefined, undefined, 94]
// Array.from HASH
r = Array.from(
{1:22, 3:94, 5:65, 7:98, 9:20, 10:48, length: 5}
);
console.log(typeof r , r )
// object
// (5) [undefined, 22, undefined, 94, undefined]
console.log("".padEnd(25,"="));
console.log("AVEC CALLBACK en 2è argument");
console.log("Pour appliquer un même TTT à "+
"chaque élément de l'Array");
console.log("=".repeat(25));
object
Array(10) [ 6, 13, 8, 11, 8, 6, 7, 15, 7, 13 ]
test.html:9:4
object
Array(10) [ 9, 12, 11, 8, 6, 11, 7, 11, 14, 6 ]
test.html:21:4
object
Array(10) [ 25, 73, 100, 12, 39, 17, 75, 16, 96, 94 ]
test.html:31:4
object
Array(5) [ 14, 11, 12, 13, 10 ]
test.html:41:4
object
Array(6) [ 86, 16, 12, 49, 78, 60 ]
test.html:53:4
object
Array(6) [ 11, 10, 15, 11, 12, 11 ]
test.html:64:4
object
Array(6) [ 11, 17, 14, 16, undefined, undefined ]
test.html:76:4
object
Array(3) [ 86, 16, 12 ]
test.html:85:4
object
Array(8) [ 86, 16, 12, 49, 78, 60, undefined, undefined ]
test.html:94:4
object
Array(6) [ 86, 16, undefined, 49, 78, 60 ]
test.html:103:4
object
Array(6) [ 49, 16, 78, 86, 12, 60 ]
Différents types d’Arrays - 35/76 - dimanche, 24. mars 2019 (9:46 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII
test.html:112:4
object
Array(6) [ undefined, 16, undefined, 78, undefined, 86 ]
test.html:121:4
object
Array(11) [ undefined, 16, undefined, 78, undefined, 86, unde-
fined, 12, undefined, 60, … ]
test.html:130:4
object
Array(16) [ 98, undefined, undefined, 22, undefined, undefined,
undefined, undefined, 65, undefined, … ]
test.html:140:4
object
Array(5) [ undefined, 22, undefined, 94, undefined ]
test.html:151:4
========================= test.html:156:1
AVEC CALLBACK en 2è argument test.html:157:1
Pour appliquer un même TTT à chaque élément de l'Array
test.html:158:1
========================= test.html:160:1
object
Array(4) [ 2, 0, 1, 8 ]
test.html:166:4
object
Array(10) [ "4 false", "2 false", "3 true", "9 true", "6 true",
"1 false", "7 false", "5 false", "0 true", "8 false" ]
test.html:177:4
La méthode « Array . of ( ) » :
Retourne une Array à partir d’une liste d’éléments séparés par une virgule.
r = Array.of(10);
console.log(typeof r);
console.log(r);
// => [10]
r = Array.of(78, 90, 25, 33, 56, 36, 39, 96, 93, 35);
console.log(typeof r);
console.log(r);
// => (10) [78, 90, 25, 33, 56, 36, 39, 96, 93, 35]
Avec Firefox :
Avec Yandex :
t="";
for(const valeur of arr) t+=valeur+" | ";
console.log(t);
// oméga | 27 | 3.14 | [object Object] |
t="";
for(let valeur of arr.values()) t+=valeur+" | ";
console.log(t);
// oméga | 27 | 3.14 | [object Object] |
t="";
for(var cle of arr.keys()) t+=cle+" | ";
console.log(t);
// 0 | 1 | 2 | 3 |
t="";
for(let [cle, valeur] of arr.entries()){
t+="cle = "+cle+" , "+"valeur = "+valeur+" | ";
}
console.log(t);
// cle = 0 , valeur = oméga |
// cle = 1 , valeur = 27 |
console.log("".padEnd(25,"="))
t="";
for(let i=-2,l=array.length+3 ; i<l ; i++){
t+=array.slice(0)[i]+" | ";
}
console.log("t+=array.slice(0)[i]");
console.log(t);
console.log("".padEnd(25,"="))
t="";
for(let i=-2,l=array.length+3 ; i<l ; i++){
t+=array.slice(i)[0]+" | ";
}
console.log("t+=array.slice(i)[0]");
console.log(t);
console.log("".padEnd(25,"="))
console.log("".padEnd(25,"="))
t="";
for(let l=array.length, i=l+2 ; i>-5 ; i--){
t+=array.slice(i)[0]+" | ";
}
console.log("t+=array.slice(-i)[0]");
console.log(t);
console.log("".padEnd(25,"="))
console.log("array.slice(0)[-i]");
for(let l=array.length, i=l+2 ; i>-5 ; i--){
console.log(array.slice(0)[i]);
}
console.log("".padEnd(25,"="))
console.log("array.slice(-i)[0]");
for(let l=array.length, i=l+2 ; i>-5 ; i--){
console.log(array.slice(i)[0]);
}
</script>
Pour avoir plus facilement le tout dernier élément d’une Array on écrit :
<script type="text/javascript">
var ar = new Uint16Array(
[90,27,65,91,10,31,51,16,56,82,12]);
console.log("");
Array de départ :
Uint16Array(11) [
90, 27, 65, 91, 10, 31, 51, 16, 56, 82, …
] test.html:3:4
ar.length : 11 test.html:4:4
C’est aussi l’occasion de voir la différence entre les deux affichages, avec
et
arr.fill(300);
console.log("Notre Array : "+arr);
arr.fill(2018,5);
console.log("Notre Array : "+arr);
arr.fill(999,3,8);
console.log("Notre Array : "+arr);
Comment initialiser les éléments d’une Array avec des nombres aléa-
toires par exemple entre 10 et 100, sans utiliser de boucle ?
Avec Firefox :
Avec Yandex :
Firefox :
Yandex :
On remplit alors donc l’Array en création par exemple avec des zéro (0) :
Deux fonctions (ou mieux, méthodes) font exactement la même chose avec
les Arrays Typées : la Array.slice() et la Array.subarray(), pendant
qu’avec les Arrays seule la méthode « Array.slice() » est disponible.
<script type="text/javascript">
let r;
var typedArray =
new Int8Array([47,84,52,98,49,96,73,50,28,26 ]);
r = typedArray.slice(2, 6);
console.log("\ntypedArray.slice(2, 7) =\n"+r);
r = typedArray.subarray(2, 6);
console.log("\ntypedArray.subarray(2, 7) =\n "+r);
i1=3,i2=14;
arr.copyWithin(i1, i2);
console.log(
("arr.copyWithin("+i1+","+i2+") : ").padStart(24," ")+
arr);
i1=2,i2=7;
Différents types d’Arrays - 50/76 - dimanche, 24. mars 2019 (9:46 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII
arr.copyWithin(i1, i2);
console.log(
("arr.copyWithin("+i1+","+i2+") : ").padStart(24," ")+
arr);
i1=6,i2=3;
arr.copyWithin(i1,i2);
console.log(
("arr.copyWithin("+i1+","+i2+") : ").padStart(24," ")+
arr);
i1=5,i2=5;
arr.copyWithin(i1,i2);
console.log(
("arr.copyWithin("+i1+","+i2+") : ").padStart(24," ")+
arr);
i1=6,i2=-6;
arr.copyWithin(i1,i2);
console.log(
("arr.copyWithin("+i1+","+i2+") : ").padStart(24," ")+
arr);
i1=-7,i2=7;
arr.copyWithin(i1,i2);
console.log(
("arr.copyWithin("+i1+","+i2+") : ").padStart(24," ")+
arr);
i1=-8,i2=-8;
arr.copyWithin(i1,i2);
console.log(
("arr.copyWithin("+i1+","+i2+") : ").padStart(24," ")+
arr);
i1=-9,i2=-3;
arr.copyWithin(i1,i2);
console.log(
("arr.copyWithin("+i1+","+i2+") : ").padStart(24," ")+
arr);
i1=-5,i2=-9;
arr.copyWithin(i1,i2);
console.log(
("arr.copyWithin("+i1+","+i2+") : ").padStart(24," ")+
arr);
i1=-5,i2=7;
arr.copyWithin(i1,i2);
console.log(
("arr.copyWithin("+i1+","+i2+") : ").padStart(24," ")+
arr);
i1=-7,i2=5;
arr.copyWithin(i1,i2);
console.log(
("arr.copyWithin("+i1+","+i2+") : ").padStart(24," ")+
arr);
i1=0,i2=5;
arr.copyWithin(i1,i2);
console.log(
("arr.copyWithin("+i1+","+i2+") : ").padStart(24," ")+
arr);
i1=5,i2=0;
arr.copyWithin(i1,i2);
console.log(
("arr.copyWithin("+i1+","+i2+") : ").padStart(24," ")+
arr);
</script>
Notre Array :
29,66,23,95,28,12,40,22,92,75,90,54,34,19,35,52,62,98
arr.copyWithin(3,14) :
29,66,23,35,52,62,98,22,92,75,90,54,34,19,35,52,62,98
arr.copyWithin(2,7) :
29,66,22,92,75,90,54,34,19,35,52,62,98,19,35,52,62,98
arr.copyWithin(6,3) :
29,66,22,92,75,90,92,75,90,54,34,19,35,52,62,98,19,35
arr.copyWithin(5,5) :
29,66,22,92,75,90,92,75,90,54,34,19,35,52,62,98,19,35
arr.copyWithin(6,-6) :
29,66,22,92,75,90,35,52,62,98,19,35,35,52,62,98,19,35
arr.copyWithin(-7,7) :
29,66,22,92,75,90,35,52,62,98,19,52,62,98,19,35,35,52
arr.copyWithin(-8,-8) :
29,66,22,92,75,90,35,52,62,98,19,52,62,98,19,35,35,52
arr.copyWithin(-5,-9) :
29,66,22,92,75,90,35,52,62,35,35,52,62,35,35,52,62,98
arr.copyWithin(-5,7) :
29,66,22,92,75,90,35,52,62,35,35,52,62,52,62,35,35,52
arr.copyWithin(-7,5) :
29,66,22,92,75,90,35,52,62,35,35,90,35,52,62,35,35,52
arr.copyWithin(0,5) :
90,35,52,62,35,35,90,35,52,62,35,35,52,52,62,35,35,52
arr.copyWithin(5,0) :
90,35,52,62,35,90,35,52,62,35,35,90,35,52,62,35,35,52
i1=3,i2=6;i3=7;
arr.copyWithin(i1,i2,i3);
Différents types d’Arrays - 54/76 - dimanche, 24. mars 2019 (9:46 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII
console.log(("arr.copyWithin("+i1+","+i2+","+i3+") : ")
.padStart(26," ")+ arr);
i1=6,i2=3;i3=7;
arr.copyWithin(i1,i2,i3);
console.log(("arr.copyWithin("+i1+","+i2+","+i3+") : ")
.padStart(26," ")+ arr);
i1=5,i2=5;i3=7;
arr.copyWithin(i1,i2,i3);
console.log(("arr.copyWithin("+i1+","+i2+","+i3+") : ")
.padStart(26," ")+ arr);
i1=6,i2=-6;i3=7;
arr.copyWithin(i1,i2,i3);
console.log(("arr.copyWithin("+i1+","+i2+","+i3+") : ")
.padStart(26," ")+ arr);
i1=-7,i2=7;i3=7;
arr.copyWithin(i1,i2,i3);
console.log(("arr.copyWithin("+i1+","+i2+","+i3+") : ")
.padStart(26," ")+ arr);
i1=-8,i2=-8;i3=7;
arr.copyWithin(i1,i2,i3);
console.log(("arr.copyWithin("+i1+","+i2+","+i3+") : ")
.padStart(26," ")+ arr);
Différents types d’Arrays - 55/76 - dimanche, 24. mars 2019 (9:46 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII
i1=-9,i2=-3;i3=7;
arr.copyWithin(i1,i2,i3);
console.log(("arr.copyWithin("+i1+","+i2+","+i3+") : ")
.padStart(26," ")+ arr);
i1=-5,i2=-9;i3=7;
arr.copyWithin(i1,i2,i3);
console.log(("arr.copyWithin("+i1+","+i2+","+i3+") : ")
.padStart(26," ")+ arr);
i1=-5,i2=7;i3=7;
arr.copyWithin(i1,i2,i3);
console.log(("arr.copyWithin("+i1+","+i2+","+i3+") : ")
.padStart(26," ")+ arr);
i1=-7,i2=5;i3=7;
arr.copyWithin(i1,i2,i3);
console.log(("arr.copyWithin("+i1+","+i2+","+i3+") : ")
.padStart(26," ")+ arr);
i1=0,i2=5;i3=7;
arr.copyWithin(i1,i2,i3);
console.log(("arr.copyWithin("+i1+","+i2+","+i3+") : ")
.padStart(26," ")+ arr);
i1=5,i2=0;i3=7;
arr.copyWithin(i1,i2,i3);
Différents types d’Arrays - 56/76 - dimanche, 24. mars 2019 (9:46 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII
console.log(("arr.copyWithin("+i1+","+i2+","+i3+") : ")
.padStart(26," ")+ arr);
</script>
Notre Array :
29,66,23,95,28,12,40,22,92,75,90,54,34,19,35,52,62,98
arr.copyWithin(3,6,7) :
29,66,23,40,28,12,40,22,92,75,90,54,34,19,35,52,62,98
arr.copyWithin(6,3,7) :
29,66,23,40,28,12,40,28,12,40,90,54,34,19,35,52,62,98
arr.copyWithin(5,5,7) :
29,66,23,40,28,12,40,28,12,40,90,54,34,19,35,52,62,98
arr.copyWithin(6,-6,7) :
29,66,23,40,28,12,40,28,12,40,90,54,34,19,35,52,62,98
arr.copyWithin(-7,7,7) :
29,66,23,40,28,12,40,28,12,40,90,54,34,19,35,52,62,98
arr.copyWithin(-8,-8,7) :
29,66,23,40,28,12,40,28,12,40,90,54,34,19,35,52,62,98
arr.copyWithin(-9,-3,7) :
29,66,23,40,28,12,40,28,12,40,90,54,34,19,35,52,62,98
arr.copyWithin(-5,-9,7) :
29,66,23,40,28,12,40,28,12,40,90,54,34,19,35,52,62,98
arr.copyWithin(-5,7,7) :
29,66,23,40,28,12,40,28,12,40,90,54,34,19,35,52,62,98
arr.copyWithin(-7,5,7) :
29,66,23,40,28,12,40,28,12,40,90,12,40,19,35,52,62,98
arr.copyWithin(0,5,7) :
12,40,23,40,28,12,40,28,12,40,90,12,40,19,35,52,62,98
<script type="text/javascript">
var arr = new Int32Array(
[24,26,22,29,13,16,15,22,26,13,22,20,20,12,12,18,20,19]);
console.log("Notre Array: "+arr);
console.log("arr.length: "+arr.length);
const n=22;
Notre Array:
24,26,22,29,13,16,15,22,26,13,22,20,20,12,12,18,20,19
test.html:4:4
arr.length: 18 test.html:5:4
La dernière position de 22 est à l'index : 10 test.html:10:4
La première position de 22 est à l'index : 2 test.html:14:4
BYTES_PER_ELEMENT: 4
length: 3
name: "Int32Array"
prototype: Int32ArrayPrototype { … }
BYTES_PER_ELEMENT: 4
constructor: function Int32Array()
constructor: Int32Array()
BYTES_PER_ELEMENT: 4
length: 3
name: "Int32Array"
prototype: Int32ArrayPrototype { … }
<prototype>: function TypedArray()
<prototype>: ??? { … }
buffer: Getter
byteLength: Getter
byteOffset: Getter
constructor: function TypedArray()
copyWithin: function copyWithin()
entries: function entries()
Comparez ces quelques propriétés disponibles avec les types de données ci-
dessus, avec quelques-unes disponible avec l’objet Array :
Array()
concat: function concat()
every: function every()
filter: function filter()
forEach: function forEach()
from: function from()
indexOf: function indexOf()
isArray: function isArray()
Différents types d’Arrays - 60/76 - dimanche, 24. mars 2019 (9:46 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII
join: function join()
lastIndexOf: function lastIndexOf()
length: 1
map: function map()
name: "Array"
of: function of()
pop: function pop()
prototype: Array []
concat: function concat()
constructor: function Array()
concat: function concat()
every: function every()
filter: function filter()
forEach: function forEach()
from: function from()
indexOf: function indexOf()
isArray: function isArray()
join: function join()
lastIndexOf: function lastIndexOf()
length: 1
map: function map()
name: "Array"
of: function of()
pop: function pop()
prototype: Array []
push: function push()
reduce: function reduce()
reduceRight: function reduceRight()
reverse: function reverse()
shift: function shift()
slice: function slice()
some: function some()
sort: function sort()
splice: function splice()
unshift: function unshift()
Symbol(Symbol.species): Getter
<prototype>: function ()
copyWithin: function copyWithin()
entries: function entries()
Différents types d’Arrays - 61/76 - dimanche, 24. mars 2019 (9:46 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII
every: function every()
fill: function fill()
filter: function filter()
find: function find()
findIndex: function findIndex()
flat: function flat()
flatMap: function flatMap()
forEach: function forEach()
includes: function includes()
indexOf: function indexOf()
join: function join()
keys: function keys()
lastIndexOf: function lastIndexOf()
length: 0
map: function map()
pop: function pop()
push: function push()
reduce: function reduce()
reduceRight: function reduceRight()
reverse: function reverse()
shift: function shift()
slice: function slice()
some: function some()
sort: function sort()
splice: function splice()
toLocaleString: function toLocaleString()
toSource: function toSource()
toString: function toString()
unshift: function unshift()
values: function values()
Symbol(Symbol.iterator): function values()
Symbol(Symbol.unscopables): Object {
copyWithin: true,
entries: true,
fill: true, …
}
<prototype>: Object { … }
push: function push()
reduce: function reduce()
Différents types d’Arrays - 62/76 - dimanche, 24. mars 2019 (9:46 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII
reduceRight: function reduceRight()
reverse: function reverse()
shift: function shift()
slice: function slice()
some: function some()
sort: function sort()
splice: function splice()
unshift: function unshift()
Symbol(Symbol.species): Getter
<get>: function Symbol.species()
<prototype>: function ()
LES ARRAYS :
Les Arrays ou tableaux sont des collections les plus faciles à utiliser. Il
existe plusieurs façons de créer une Array, dont :
a = [0];
// Array initialement à un seul élément,
// le nombre 0.
console.log("a =",a,"[0] =",[0]);
a = [10,11];
// Array initialement à deux éléments,
// les nombres 10 et 11 ou autres.
console.log("a =",a,"[0] =",[10,11]);
a = [10.11];
// Array initialement à un seul élément,
// le nombre 10.11.
console.log("a =",a,"[0] =",[10.11]);
</script>
II. Avec Simplement « Array », sans « new » (sans passer par le cons-
tructeur = initialiseur) :
a = Array(0)
// Array initialement vide.
console.log("a =",a,"Array(0) =",Array(0));
a = Array("0")
// Array initialement à un seul élément,
// le littéral zéro (0).
console.log("a =",a,'Array("0") =',Array("0"));
a = Array(10,11)
// Array initialement à deux éléments,
// les nombres 10 et 11 ou autres.
console.log("a =",a,"Array(10,11) =",Array(10,11));
a = Array(10.11);
console.log("a =",a,"[0] =",Array(10.11));
// RangeError: invalid array length
a = new Array(0)
// Array initialement vide.
console.log("a =",a,"new Array(0) =",new Array(0));
a = new Array("0")
// Array initialement à un seul élément,
// le littéral zéro (0).
console.log("a =",a,'new Array("0") =',new Array("0"));
a = new Array(10,11)
// Array initialement à deux éléments,
// les nombres 10 et 11 ou autres.
console.log("a =",a,"new Array(10,11) =",new Array(10,11));
a = new Array(10.11);
Différents types d’Arrays - 66/76 - dimanche, 24. mars 2019 (9:46 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII
console.log("a =",a,"[0] =",new Array(10.11));
// RangeError: invalid array length
</script>
Pour trier les éléments d’une Array, rien n’est plus simple :
let sorted=true;
console.log(a);
for(var k=0 ; k < a.length-2 ; )
if(a[k] > a[++k]){
sorted=false;
break;
}
if(!sorted)status="Not";
console.log(status,"Sorted !, pos =",k)
</script>
let sorted=true;
console.log(a);
for(var k=0 ; k < a.length-2 ; )
if(a[k] > a[++k]){
sorted=false;
break;
}
if(!sorted)status="Not";
console.log(status,"Sorted !, pos =",k)
</script>
let ok=false;
console.log(a);
for(var k=1 ; k < a.length-2 ; k++){
if(a[k] == ((a[k-1] + a[k+1])/2)){
ok=true;
break;
}
}
if(!ok)status="*!NO!*";
console.log(status,
`neighboring Meaners !, pos = a[${k}] = ${a[k]}`);
console.log(
`( a[${k-1}] {${a[k-1]}} +` +
` a[${k+1}] {${a[k+1]}} ) / 2 = `+
`${(a[k-1] + a[k+1])/2}`);
console.log(a);
</script>
let a = Array.from(
new Set([41, 96, 50, 92, 14, 96, 95, 45, 41, 43])
)//.sort();
a = (2) […]
0: 10
1: 11
length: 2
<prototype>: Array []
<prototype>: []
concat: function concat()
constructor: function Array()
copyWithin: function copyWithin()
entries: function entries()
every: function every()
fill: function fill()
filter: function filter()
find: function find()
findIndex: function findIndex()
flat: function flat()
flatMap: function flatMap()
forEach: function forEach()
L’objet ARRAYBUFFER :
Voir volume séparé.
Les STRINGS :
Voir volume séparé.
L’OBJECT :
Voir volume séparé.
Mots-clés :
diasfb@mail2world.com
Autre Lecture :
• https://www.scribd.com/document/377036251/Le-
Dosage-Des-Medicaments-en-Cac-Cas
• https://www.scribd.com/document/377035454/Le-
Hasard-Des-Thermometres-Non-contact-a-Infrarouge
• https://www.scribd.com/document/376222482/Petite-
Introduction-Aux-Fonctions-JavaScript
• https://www.scribd.com/document/376221919/La-Foi-
en-Jesus-Christ-Pour-Quoi-Faire
• https://www.scribd.com/document/375689778/Lacuite-
visuelle-angulaire
• https://www.scribd.com/document/375349851/La-
variable-This
•
https://www.scribd.com/document/375024162/Fonctions-
Imbriquees-en-JS
• https://www.scribd.com/document/374789297/Format-
Interne-Des-Objets-JavaScript
•
https://www.scribd.com/document/374788758/Iterations-
en-JavaScript
• https://www.scribd.com/document/374738470/Le-Plus-
Grand-Secret-de-La-Creation
• https://www.scribd.com/document/374597969/Nouvelle-
Formule-d-IMC-indice-de-doduite-Selon-Dr-Diasoluka
Différents types d’Arrays - 74/76 - dimanche, 24. mars 2019 (9:46 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII
• https://www.scribd.com/document/373847209/Property-
Descriptors
• https://www.scribd.com/document/373833282/l-Objet-
Global-Window
•
https://www.scribd.com/document/372665249/Javascript-
Tome-II
• https://www.scribd.com/document/355291488/motilite-
oculaire-2
• https://www.scribd.com/document/355291239/motilite-
oculaire-I
• https://www.scribd.com/document/355290248/Script-d-
Analyses-Des-Reflexes-Pupillomoteurs
•
https://www.scribd.com/document/321168468/Renseigne
ments-Id-et-Anthropometriques
•
https://www.scribd.com/document/320856721/Emission-
31-Jul-2016
•
https://www.scribd.com/document/318182982/Complicati
on-Visuelle-du-Traitement-de-La-Malaria
• https://www.scribd.com/document/318180637/Rapport-
Entre-Oxymetrie-Et-Type-Respiration
•
https://www.scribd.com/document/315746265/Classificati
on-Des-Medicaments
•
https://www.scribd.com/document/315745909/Incongruen
Différents types d’Arrays - 75/76 - dimanche, 24. mars 2019 (9:46 )
J.D.B. DIASOLUKA Nz. Luyalu JavaScript Tome-XXII
ces-Heresies-et-Heterodoxies-de-la-Notion-de-
Laboratoire
• https://www.scribd.com/document/315745725/Rapport-
Entre-Oxymetrie-Et-Type-Respiration