Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > Prototype & Script.aculo.us
Prototype & Script.aculo.us Forum d'entraide sur les frameworks Prototype et Script.aculo.us
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/08/2006, 11h57   #1
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 119
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 119
Points : 45 278
Points : 45 278
Par défaut Array.prototype.length ? stack overload.

Bon ce post découle d'un autre post ...

le prototype en question permet de calucler la longueur d'un array littéral lorsque celui-ci utilise des integer comme indice car javascript retourne l'incide le plus élévé augmenté de 1 comme longueur de l'array ...


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var Pl=????????
 
function ArrayLength(){var lg=0-Pl;
			for (ind in this){
								 lg++
								}
			return lg;}
 
Array.prototype.MyLength=ArrayLength
 
 
var tabAssDom= new Array() 
tabAssDom[30] = "abc"
tabAssDom[25] = "dbc"
tabAssDom[25] = "dbc"
 
var a=tabAssDom.MyLength()
alert (a)
 
 
alert (Array.prototype.MyLength())
la problématique ici serait de pouvoir initialiser le à 0- nombre de prototype de l'array sinon la boucle for retouren en plus des indices les prototypes ...
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 12h04   #2
Expert Confirmé
 
Avatar de KiLVaiDeN
 
Inscription : octobre 2003
Messages : 2 714
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 2 714
Points : 2 689
Points : 2 689
Salut,

Je n'ai pas bien compris le problème, car ta dernière phrase est bizarre Mais peut-être dois-tu ajouter un attribut à ton prototype qui sera utilisé pour chaque instance non ?
__________________
K
KiLVaiDeN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 12h12   #3
Membre régulier
 
Inscription : avril 2004
Messages : 144
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 144
Points : 90
Points : 90
Envoyer un message via MSN à tuxout
Tu veux retourner un tableau avec les indices présents si il y en a ? sur lequel tu pourrais faire un simple .length pour connaitre la taille de celui ci et donc la taille du précédent ?
__________________
"Il n'y a ni gagnant ni perdant, juste des joueurs ..."

Pensez, si vous le pouvez encore, au tag RESOLU
Nb: Note à moi même, ne l'oublis pas sinon tu vas te faire traiter
tuxout est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 12h14   #4
Expert Confirmé Sénior
 
Avatar de denisC
 
Inscription : février 2005
Messages : 4 069
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2005
Messages : 4 069
Points : 4 698
Points : 4 698
Citation:
Envoyé par SpaceFrog
la problématique ici serait de pouvoir initialiser le à 0- nombre de prototype de l'array sinon la boucle for retouren en plus des indices les prototypes ...
Code :
1
2
 
if(ind.startWith("prototype.")) {...
Ca suffit pas, ça?
denisC est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 12h22   #5
Expert Confirmé
 
Avatar de FremyCompany
 
Étudiant
Inscription : février 2006
Messages : 2 532
Détails du profil
Informations personnelles :
Âge : 20

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2006
Messages : 2 532
Points : 2 903
Points : 2 903
Envoyer un message via MSN à FremyCompany
Citation:
Envoyé par denisC
Code :
1
2
 
if(ind.startWith("prototype.")) {...
Ca suffit pas, ça?
ou alors :
Code :
if (Array.prototype[key] != this[key]) { count++: }
???
__________________
Fremy
Pour vos développements Web et une navigation agréable, le tout gratuit :
1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey
FremyCompany est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 13h40   #6
Expert Confirmé
 
Avatar de javatwister
 
Homme
danseur
Inscription : août 2003
Messages : 2 667
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : danseur

Informations forums :
Inscription : août 2003
Messages : 2 667
Points : 3 035
Points : 3 035
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
function ArrayLength(){
	var lg=0;
	var nom="";
 
	for (ind in this){
		if(this.hasOwnProperty(ind)){
			lg++;
			nom+=ind + ", ";
		}
	}
 
	nom=nom.replace(/, $/,"");
	return  "ce tableau contient " + lg + " indices déclarés (" + nom + ")";
}
 
Array.prototype.MyLength=ArrayLength
 
 
var tabAssDom= new Array() 
tabAssDom[30] = "abc"
tabAssDom[25] = "dbc"
tabAssDom[25] = "dbc"
 
alert (tabAssDom.MyLength())
ainsi, tu comptes uniquement les entrées dans le tableau et tu élimines les doublons;
javatwister est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 13h47   #7
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 119
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 119
Points : 45 278
Points : 45 278
Je suis resté plus basique ... je me compliquais l'existance à vouloir utiliser le prototype lui même pour obtenir le nombre de prototypes ...
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<script type='text/javascript'>
Array.prototype.MyLength=ArrayLength
var Pl=0
for (proto in Array.prototype){Pl++}
 
function ArrayLength(){var lg=0-Pl;
			for (ind in this){
								 lg++
								}
			return lg;}
 
 
 
 
var tabAssDom= new Array() 
tabAssDom[30] = "abc"
tabAssDom[25] = "dbc"
tabAssDom[15] = "dbc"
 
var a=tabAssDom.MyLength()
alert (a)
</script>
par contre ce qui me parait curieux est qu'il accepte la définition du prototype avant que la fonction n'existe ???
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 13h50   #8
Expert Confirmé Sénior
 
Avatar de denisC
 
Inscription : février 2005
Messages : 4 069
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2005
Messages : 4 069
Points : 4 698
Points : 4 698
Citation:
Envoyé par SpaceFrog
par contre ce qui me parait curieux est qu'il accepte la définition du prototype avant que la fonction n'existe ???
Typique de JS : il s'en inquietera quand il aura besoin de l'appeller. C'est juste un identifiant de référence vers la méthode, peut importe si à ce moment là, la méthode n'existe pas encore....

De la même façon, tu peux faire:
Code :
1
2
3
4
5
6
7
 
function a() {
  return b();
}
function b() {
  return 1;
}
Pourtant, au moment de définir a, b n'existe pas. Et ça ne t'etonne pas que ça marche
denisC est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 13h56   #9
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 119
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 119
Points : 45 278
Points : 45 278
ben à vrai dire jusqu'à présent je faisait attention de mettre mes fonctions dans l'ordre (habitudes prise avec d'autres languages qui se compilent) ...
Mis bon si js focntionne par références ...
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 14h00   #10
Expert Confirmé
 
Avatar de javatwister
 
Homme
danseur
Inscription : août 2003
Messages : 2 667
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : danseur

Informations forums :
Inscription : août 2003
Messages : 2 667
Points : 3 035
Points : 3 035
Citation:
Envoyé par SpaceFrog
je me compliquais l'existance à vouloir utiliser le prototype lui même pour obtenir le nombre de prototypes ...
certes, mais je voulais dire qu'avec ce code, toutes les propriétés autres que les entrées du tableau sont éliminées d'office;
javatwister est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 14h01   #11
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 119
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 119
Points : 45 278
Points : 45 278
il pourrait y avoir d'autre entrées que des prototypes ou des entrées du tableau ?
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 14h06   #12
Expert Confirmé
 
Avatar de javatwister
 
Homme
danseur
Inscription : août 2003
Messages : 2 667
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : danseur

Informations forums :
Inscription : août 2003
Messages : 2 667
Points : 3 035
Points : 3 035
en gros, non; mais le but étant de récupérer le vrai nombre d'indices du tableau, la fonction effectuera toujours docilement ce travail;
javatwister est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 14h07   #13
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 119
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 119
Points : 45 278
Points : 45 278
Ha ben voilà JT si tu avais commencé par me dire qu'il existait une propriété HasOwnProperty ...
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 14h08   #14
Expert Confirmé
 
Avatar de javatwister
 
Homme
danseur
Inscription : août 2003
Messages : 2 667
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : danseur

Informations forums :
Inscription : août 2003
Messages : 2 667
Points : 3 035
Points : 3 035
ah bon t'avais pas vu
javatwister est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 14h15   #15
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 119
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 119
Points : 45 278
Points : 45 278
personne n'aurait une lingette pour nettoyer la bulle de mon casque ?
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 14h24   #16
Expert Confirmé
 
Avatar de javatwister
 
Homme
danseur
Inscription : août 2003
Messages : 2 667
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : danseur

Informations forums :
Inscription : août 2003
Messages : 2 667
Points : 3 035
Points : 3 035
le plus drôle en fait, c'est ça:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<script type="text/javascript">
 
var t=[];
t.push({"un":"premier"});
t.push({"deux":"deuxième"});
 
alert(t.length + " (glop)")
 
 
 
var t=[];
t["un"]="premier";
t["deux"]="deuxième";
 
alert(t.length + " (pas glop)")
 
 
</script>
javatwister est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 14h30   #17
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 119
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 119
Points : 45 278
Points : 45 278

Code :
1
2
3
4
5
 
var t=[];
t["un"]="premier";
t["deux"]="deuxième";
t[1]='troisième'
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 14h31   #18
Expert Confirmé
 
Avatar de FremyCompany
 
Étudiant
Inscription : février 2006
Messages : 2 532
Détails du profil
Informations personnelles :
Âge : 20

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2006
Messages : 2 532
Points : 2 903
Points : 2 903
Envoyer un message via MSN à FremyCompany
Citation:
personne n'aurait une lingette pour nettoyer la bulle de mon casque ?
Celle-ci te conviennent-elles ?

__________________
Fremy
Pour vos développements Web et une navigation agréable, le tout gratuit :
1) IE 8 + IE7Pro (Si vous ne connaissez pas IE7Pro, essayez !)
2) FF 3 + Web Developper Toolbar + AdBlockPlus + FireBug + GreaseMonkey
FremyCompany est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 14h35   #19
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 119
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 119
Points : 45 278
Points : 45 278
Merci fremy j'y vois mieux comme ça !
....












Au secouuuuuuuuuuuuuurs !!!!!!!!
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 14h35   #20
Expert Confirmé
 
Avatar de javatwister
 
Homme
danseur
Inscription : août 2003
Messages : 2 667
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Calvados (Basse Normandie)

Informations professionnelles :
Activité : danseur

Informations forums :
Inscription : août 2003
Messages : 2 667
Points : 3 035
Points : 3 035
Citation:
Envoyé par SpaceFrog

Code :
1
2
3
4
5
 
var t=[];
t["un"]="premier";
t["deux"]="deuxième";
t[1]='troisième'
ouais, logique : il prend en compte les indices 0 et 1;
javatwister est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h01.


 
 
 
 
Partenaires

Hébergement Web