A cause d'un problème de Array, j'ai du chercher, et trouver:
http://www.devguru.com/technologies/ecmascript/QuickRef/array.html
[...]
fruit = new Array(7)
If you create an array with a single numeric parameter, that number is
stored in the length property, and the array doesn't actually have any
elements until some are specifically assigned to it. If, however, the
parameter is not a number, an array of 1 element is created and that value
assigned to it. You can easily increase the size of an array by assigning a
value to an element higher than its current length.
[...]
Bon. Moi, je travaille avec des arrays, il n'y aura que des nombres dedans.
Et le cas ou il n'y a qu'un seul élément est un cas particulier qui
necessite un traitement particulier. J'ai donc besoin de vraiment
avoir "fruit.length == 1" dans le cas cité en exemple.
Solution que j'ai trouvé (à la va vite), transformer les nombres en chaines
de caractères {fruit= new Array("7");}, et si j'ai besoin de leur valeur
numérique, je re-transforme en nombre...
Autrement, comment fait-on?
Merci.
Accessoirement... quel est la logique de cette "fonctionalité"? C'est
piégeux, vicieux, même pas subtil,... ou bien?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
A cause d'un problème de Array, j'ai du chercher, et trouver: http://www.devguru.com/technologies/ecmascript/QuickRef/array.html
[...] fruit = new Array(7) If you create an array with a single numeric parameter, that number is stored in the length property, and the array doesn't actually have any elements until some are specifically assigned to it. If, however, the parameter is not a number, an array of 1 element is created and that value assigned to it. You can easily increase the size of an array by assigning a value to an element higher than its current length. [...]
La norme ECMAScript précise que si le paramètre len est un nombre mais que ToUint32(len) n'est pas égal à len (donc en particulier si c'est un nombre négatif ou non entier), une exception RangeError est levée.
Si len n'est pas un nombre, le comportement du constructeur à un paramètre est le même que lorsque le nombre de paramètres est 0 ou bien supérieur ou égal à 2.
Bon. Moi, je travaille avec des arrays, il n'y aura que des nombres dedans. Et le cas ou il n'y a qu'un seul élément est un cas particulier qui necessite un traitement particulier. J'ai donc besoin de vraiment avoir "fruit.length == 1" dans le cas cité en exemple. Solution que j'ai trouvé (à la va vite), transformer les nombres en chaines de caractères {fruit= new Array("7");}, et si j'ai besoin de leur valeur numérique, je re-transforme en nombre...
Autrement, comment fait-on?
Par exemple : fruit = new Array(); fruit.push(7);
Il y a plein d'autres méthodes. Il semblerait, si je comprends la doc, que ceci en soit une aussi, plus simple : fruit = [ 7 ];
Accessoirement... quel est la logique de cette "fonctionalité"? C'est piégeux, vicieux, même pas subtil,... ou bien?
C'est piégeux, et probablement dû au poids de la compatibilité avec la définition initiale de JavaScript. Si seulement c'était le seul piège de JavaScript !
A cause d'un problème de Array, j'ai du chercher, et trouver:
http://www.devguru.com/technologies/ecmascript/QuickRef/array.html
[...]
fruit = new Array(7)
If you create an array with a single numeric parameter, that number is
stored in the length property, and the array doesn't actually have any
elements until some are specifically assigned to it. If, however, the
parameter is not a number, an array of 1 element is created and that value
assigned to it. You can easily increase the size of an array by assigning a
value to an element higher than its current length.
[...]
La norme ECMAScript précise que si le paramètre len est un nombre mais
que ToUint32(len) n'est pas égal à len (donc en particulier si c'est un
nombre négatif ou non entier), une exception RangeError est levée.
Si len n'est pas un nombre, le comportement du constructeur à un
paramètre est le même que lorsque le nombre de paramètres est 0 ou
bien supérieur ou égal à 2.
Bon. Moi, je travaille avec des arrays, il n'y aura que des nombres dedans.
Et le cas ou il n'y a qu'un seul élément est un cas particulier qui
necessite un traitement particulier. J'ai donc besoin de vraiment
avoir "fruit.length == 1" dans le cas cité en exemple.
Solution que j'ai trouvé (à la va vite), transformer les nombres en chaines
de caractères {fruit= new Array("7");}, et si j'ai besoin de leur valeur
numérique, je re-transforme en nombre...
Autrement, comment fait-on?
Par exemple :
fruit = new Array(); fruit.push(7);
Il y a plein d'autres méthodes. Il semblerait, si je comprends la doc,
que ceci en soit une aussi, plus simple :
fruit = [ 7 ];
Accessoirement... quel est la logique de cette "fonctionalité"? C'est
piégeux, vicieux, même pas subtil,... ou bien?
C'est piégeux, et probablement dû au poids de la compatibilité avec la
définition initiale de JavaScript. Si seulement c'était le seul piège de
JavaScript !
A cause d'un problème de Array, j'ai du chercher, et trouver: http://www.devguru.com/technologies/ecmascript/QuickRef/array.html
[...] fruit = new Array(7) If you create an array with a single numeric parameter, that number is stored in the length property, and the array doesn't actually have any elements until some are specifically assigned to it. If, however, the parameter is not a number, an array of 1 element is created and that value assigned to it. You can easily increase the size of an array by assigning a value to an element higher than its current length. [...]
La norme ECMAScript précise que si le paramètre len est un nombre mais que ToUint32(len) n'est pas égal à len (donc en particulier si c'est un nombre négatif ou non entier), une exception RangeError est levée.
Si len n'est pas un nombre, le comportement du constructeur à un paramètre est le même que lorsque le nombre de paramètres est 0 ou bien supérieur ou égal à 2.
Bon. Moi, je travaille avec des arrays, il n'y aura que des nombres dedans. Et le cas ou il n'y a qu'un seul élément est un cas particulier qui necessite un traitement particulier. J'ai donc besoin de vraiment avoir "fruit.length == 1" dans le cas cité en exemple. Solution que j'ai trouvé (à la va vite), transformer les nombres en chaines de caractères {fruit= new Array("7");}, et si j'ai besoin de leur valeur numérique, je re-transforme en nombre...
Autrement, comment fait-on?
Par exemple : fruit = new Array(); fruit.push(7);
Il y a plein d'autres méthodes. Il semblerait, si je comprends la doc, que ceci en soit une aussi, plus simple : fruit = [ 7 ];
Accessoirement... quel est la logique de cette "fonctionalité"? C'est piégeux, vicieux, même pas subtil,... ou bien?
C'est piégeux, et probablement dû au poids de la compatibilité avec la définition initiale de JavaScript. Si seulement c'était le seul piège de JavaScript !
ASM
Autrement, comment fait-on?
Tableau d'un seul élément qui est un nombre : var fruit = new Array(); fruit[0] = 7; ou : var fruit = [7];
Tableau de plusieurs éléments dont des nombres : var fruits = new Array(7,'orange',12,'melon',253,'pomme'); ou : var fruits = [7,'orange',12,'melon',253,'pomme'];
Accessoirement... quel est la logique de cette "fonctionalité"? C'est piégeux, vicieux, même pas subtil,... ou bien?
Logique ? je sais pas ... Vicieux ? non ça ne m'a jamais posé de pb métaphysique ... si ce n'est : pourquoi fixer d'avance la taille d'un tableau ?
à rapprocher de : var vue = new Image(); var vue = new Image(125,45); où la aussi on a qques particularités
il suffit de connaître ces particularismes :-)
-- Stephane Moriaux et son (moins) vieux Mac déjà dépassé
Autrement, comment fait-on?
Tableau d'un seul élément qui est un nombre :
var fruit = new Array();
fruit[0] = 7;
ou :
var fruit = [7];
Tableau de plusieurs éléments dont des nombres :
var fruits = new Array(7,'orange',12,'melon',253,'pomme');
ou :
var fruits = [7,'orange',12,'melon',253,'pomme'];
Accessoirement... quel est la logique de cette "fonctionalité"? C'est
piégeux, vicieux, même pas subtil,... ou bien?
Logique ? je sais pas ...
Vicieux ? non ça ne m'a jamais posé de pb métaphysique
... si ce n'est : pourquoi fixer d'avance la taille d'un tableau ?
à rapprocher de :
var vue = new Image();
var vue = new Image(125,45);
où la aussi on a qques particularités
il suffit de connaître ces particularismes :-)
--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé
Tableau d'un seul élément qui est un nombre : var fruit = new Array(); fruit[0] = 7; ou : var fruit = [7];
Tableau de plusieurs éléments dont des nombres : var fruits = new Array(7,'orange',12,'melon',253,'pomme'); ou : var fruits = [7,'orange',12,'melon',253,'pomme'];
Accessoirement... quel est la logique de cette "fonctionalité"? C'est piégeux, vicieux, même pas subtil,... ou bien?
Logique ? je sais pas ... Vicieux ? non ça ne m'a jamais posé de pb métaphysique ... si ce n'est : pourquoi fixer d'avance la taille d'un tableau ?
à rapprocher de : var vue = new Image(); var vue = new Image(125,45); où la aussi on a qques particularités
il suffit de connaître ces particularismes :-)
-- Stephane Moriaux et son (moins) vieux Mac déjà dépassé
Olivier Miakinen
var fruit = [7];
Je te remercie de confirmer ma lecture de la norme. C'est tellement difficile à lire que je n'étais vraiment pas sûr de moi sur ce coup.
à rapprocher de : var vue = new Image(); var vue = new Image(125,45);
Je ne connaissais pas. C'est du DOM ?
où la aussi on a qques particularités
il suffit de connaître ces particularismes :-)
Tu nous en dis plus ?
var fruit = [7];
Je te remercie de confirmer ma lecture de la norme. C'est tellement
difficile à lire que je n'étais vraiment pas sûr de moi sur ce coup.
à rapprocher de :
var vue = new Image();
var vue = new Image(125,45);
Je te remercie de confirmer ma lecture de la norme. C'est tellement difficile à lire que je n'étais vraiment pas sûr de moi sur ce coup.
à rapprocher de : var vue = new Image(); var vue = new Image(125,45);
Je ne connaissais pas. C'est du DOM ?
où la aussi on a qques particularités
il suffit de connaître ces particularismes :-)
Tu nous en dis plus ?
Pascal PONCET
à rapprocher de : var vue = new Image(); var vue = new Image(125,45);
Je ne connaissais pas. C'est du DOM ?
Oui, c'est du DOM niveau 0. Les arguments "largeur, hauteur" sont facultatifs, d'où les 2 écritures possibles. C'est ce qui permet de précharger des images, par exemple, à condition de spécifier une valeur pour la propriété "src" des objets "Image".
à rapprocher de :
var vue = new Image();
var vue = new Image(125,45);
Je ne connaissais pas. C'est du DOM ?
Oui, c'est du DOM niveau 0.
Les arguments "largeur, hauteur" sont facultatifs, d'où les 2 écritures
possibles.
C'est ce qui permet de précharger des images, par exemple, à condition
de spécifier une valeur pour la propriété "src" des objets "Image".
à rapprocher de : var vue = new Image(); var vue = new Image(125,45);
Je ne connaissais pas. C'est du DOM ?
Oui, c'est du DOM niveau 0. Les arguments "largeur, hauteur" sont facultatifs, d'où les 2 écritures possibles. C'est ce qui permet de précharger des images, par exemple, à condition de spécifier une valeur pour la propriété "src" des objets "Image".
ASM
var fruit = [7];
Je te remercie de confirmer ma lecture de la norme.
:-)
C'est tellement difficile à lire
Tu veux dire quasi impossible, je présume ? Enfin ... perso, j'ai renoncé.
que je n'étais vraiment pas sûr de moi sur ce coup.
Je ne suis jamais sûr de rien ... y a pas mieux que les tests.
à rapprocher de : var vue = new Image(); var vue = new Image(125,45);
Je ne connaissais pas. C'est du DOM ?
Du JS de nos grands mères :-)
document.images = arbre des images (comme on a ceux des forms, anchors, links ... )
déclarer une nouvelle image : var truc = new Image();
déclarer une nouvelle image en pré-précisant sa taille var truc = new Image(width, height); width et height représentant largeur et hauteur (en pixels) sans unité
lui attribuer un chemin (sinon ça n'a pas beaucoup d'intérêt) truc.src = 'chemin/de/mon/image.jpg';
Permet de pré ou post loader (pré ou post charger et post c'est mieux) des images pour pouvoir les utiliser "dynamiquement" plus tard.
Mais : truc = new Image(); truc.src = 'img1.png'; ne suffit pas réellement à charger l'image : si l'utilisateur clicote pendant le chargement, ce dernier s'interrompt (et ne reprend pas) Utilisé simplement sous cette forme n'est réellement intéressant que si on retrouve de page en page ce post-chargement car alors, par l'indication du chemin, le navigateur prendra l'image déjà en cache.
Toujours en JS de nos grands mères : afficher cette nouvelle image à la place d'une autre déjà affichée
document.cetteImage.src = truc.src; ou : document.images['cetteImage'].src = truc.src; avec : <img name="cetteImage" src="autre_image.jpg" alt="">
Pour mémoire, forcer le post-chargement d'une série d'images en cache (compatible tous brouteurs depuis NC4 au moins) :
JS : === // tableau des chemins // en profitant de nos nouvelles connaissances :-) var I = ['img1.png','bidule.jpg','chose.jpg']; // tableau vide (pour déclarer et utiliser les images) var V = []; // fixer le nbre d'images à charger var i = I.length; // fonction de chargement function imgsLoad() { i--; if(i>=0) { V[i] = new Image(); V[i].onload = imgsLoad; V[i].src = I[i]; } } // post chargement onload = imgsLoad();
-- Stephane Moriaux et son (moins) vieux Mac déjà dépassé
var fruit = [7];
Je te remercie de confirmer ma lecture de la norme.
:-)
C'est tellement difficile à lire
Tu veux dire quasi impossible, je présume ?
Enfin ... perso, j'ai renoncé.
que je n'étais vraiment pas sûr de moi sur ce coup.
Je ne suis jamais sûr de rien ... y a pas mieux que les tests.
à rapprocher de :
var vue = new Image();
var vue = new Image(125,45);
Je ne connaissais pas. C'est du DOM ?
Du JS de nos grands mères :-)
document.images = arbre des images
(comme on a ceux des forms, anchors, links ... )
déclarer une nouvelle image :
var truc = new Image();
déclarer une nouvelle image en pré-précisant sa taille
var truc = new Image(width, height);
width et height représentant largeur et hauteur (en pixels) sans unité
lui attribuer un chemin (sinon ça n'a pas beaucoup d'intérêt)
truc.src = 'chemin/de/mon/image.jpg';
Permet de pré ou post loader (pré ou post charger et post c'est mieux)
des images pour pouvoir les utiliser "dynamiquement" plus tard.
Mais :
truc = new Image();
truc.src = 'img1.png';
ne suffit pas réellement à charger l'image :
si l'utilisateur clicote pendant le chargement, ce dernier s'interrompt
(et ne reprend pas)
Utilisé simplement sous cette forme n'est réellement intéressant que si
on retrouve de page en page ce post-chargement car alors, par
l'indication du chemin, le navigateur prendra l'image déjà en cache.
Toujours en JS de nos grands mères :
afficher cette nouvelle image à la place d'une autre déjà affichée
document.cetteImage.src = truc.src;
ou :
document.images['cetteImage'].src = truc.src;
avec :
<img name="cetteImage" src="autre_image.jpg" alt="">
Pour mémoire,
forcer le post-chargement d'une série d'images en cache
(compatible tous brouteurs depuis NC4 au moins) :
JS :
=== // tableau des chemins
// en profitant de nos nouvelles connaissances :-)
var I = ['img1.png','bidule.jpg','chose.jpg'];
// tableau vide (pour déclarer et utiliser les images)
var V = [];
// fixer le nbre d'images à charger
var i = I.length;
// fonction de chargement
function imgsLoad() {
i--;
if(i>=0) {
V[i] = new Image();
V[i].onload = imgsLoad;
V[i].src = I[i];
}
}
// post chargement
onload = imgsLoad();
Je te remercie de confirmer ma lecture de la norme.
:-)
C'est tellement difficile à lire
Tu veux dire quasi impossible, je présume ? Enfin ... perso, j'ai renoncé.
que je n'étais vraiment pas sûr de moi sur ce coup.
Je ne suis jamais sûr de rien ... y a pas mieux que les tests.
à rapprocher de : var vue = new Image(); var vue = new Image(125,45);
Je ne connaissais pas. C'est du DOM ?
Du JS de nos grands mères :-)
document.images = arbre des images (comme on a ceux des forms, anchors, links ... )
déclarer une nouvelle image : var truc = new Image();
déclarer une nouvelle image en pré-précisant sa taille var truc = new Image(width, height); width et height représentant largeur et hauteur (en pixels) sans unité
lui attribuer un chemin (sinon ça n'a pas beaucoup d'intérêt) truc.src = 'chemin/de/mon/image.jpg';
Permet de pré ou post loader (pré ou post charger et post c'est mieux) des images pour pouvoir les utiliser "dynamiquement" plus tard.
Mais : truc = new Image(); truc.src = 'img1.png'; ne suffit pas réellement à charger l'image : si l'utilisateur clicote pendant le chargement, ce dernier s'interrompt (et ne reprend pas) Utilisé simplement sous cette forme n'est réellement intéressant que si on retrouve de page en page ce post-chargement car alors, par l'indication du chemin, le navigateur prendra l'image déjà en cache.
Toujours en JS de nos grands mères : afficher cette nouvelle image à la place d'une autre déjà affichée
document.cetteImage.src = truc.src; ou : document.images['cetteImage'].src = truc.src; avec : <img name="cetteImage" src="autre_image.jpg" alt="">
Pour mémoire, forcer le post-chargement d'une série d'images en cache (compatible tous brouteurs depuis NC4 au moins) :
JS : === // tableau des chemins // en profitant de nos nouvelles connaissances :-) var I = ['img1.png','bidule.jpg','chose.jpg']; // tableau vide (pour déclarer et utiliser les images) var V = []; // fixer le nbre d'images à charger var i = I.length; // fonction de chargement function imgsLoad() { i--; if(i>=0) { V[i] = new Image(); V[i].onload = imgsLoad; V[i].src = I[i]; } } // post chargement onload = imgsLoad();