Creer des couples depuis un Array d'objets

Résolu
yanomano Messages postés 4 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 11 septembre 2009 - 11 sept. 2009 à 10:54
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 - 11 sept. 2009 à 13:18
Bonjour,
Je suis eu peu débutant en Javascript et je bute un peu sur un script.
J'ai un Array avec plusieurs objets du type :
[{1:2,3,},{10:11,12}]
je voudrais un array en sortie avec :
[{1,2},{1,3},{10,11},{10,12}]

Je commence par extraire tous les chiffres
dans un nouveau Array :


function CoupleArray(compList){

var tempList= new Array()
var reg= new RegExp("[,:]")
for (var i in compList){
tempList[i]=new Object()
tempList[i]= compList[i].split(reg);
}		
return tempList
}


Mais là je bute....comment creer les couples ?
comment faire une iteration a la fois dans le tabkleau et dans les objects...

merci pour votre aide.





yanomano

7 réponses

yanomano Messages postés 4 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 11 septembre 2009
11 sept. 2009 à 11:25
Oui désolé, en fait ce que j'envoie dans la fonction c'est un array de string...sous la forme : [{1:2,3,},{10:11,12}]



yanomano
3
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
11 sept. 2009 à 11:18
Bonjour,
regExp ? ça joue avec une chaîne de caractères,
pas des array !
donc ? comment c'est mis dans la variable
initiale ceci : [{1:2,3,},{10:11,12}] ?
var deb="[{1:2,3,},{10:11,12}]" ? ou quoi

Cordialement [mon Site] [M'écrire] Bul
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
11 sept. 2009 à 11:33
>>c'est un array de string.
????
vous ne pouvez pas faire voir ?

et : vous ne pouvez pas faire autrement ?
de "vrai array", même si c'est obligatoirement
dans un string, eval par exemple simplifierait
le traitement...

en passant : ne cochez pas "réponse acceptée",
ça veut dire "problème résolu" en fait
0
yanomano Messages postés 4 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 11 septembre 2009
11 sept. 2009 à 11:50
Oh ok pour la case reponse...

Peut être qu'il faut que je m'exprime ainsi, si c'est plus simple :

J'ai en en entrée :
[{un:deux,douze},{trois:quatre,vingt}]

je voudrais en sortie :
[{un,deux},{un,douze},{trois,quatre},{trois,vingt}]
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
11 sept. 2009 à 12:17
certes, certes ????
comme ça donc :
traitement( "[{un:deux,douze},{trois:quatre,vingt}]" );

vous êtes obligé de conserver cette structure ??
si oui ( on se demande pourquoi )
split sur '(' puis sur ':' puis sur ','
0
yanomano Messages postés 4 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 11 septembre 2009
11 sept. 2009 à 12:44
Encore désolé de ne pas préciser le contexte :)
un utilisateur entre du texte dans une fenêtre
1:2,3 (retour a la ligne)
10:11,12(retour a la ligne)
et autant de ligne que l'on veut....
ce sont des séries d'indexes pour connecter des points affichés à l'écran.
ex: le point 1 est connecté au point 2,puis une seconde connexion pour le point 1 vers le point 3....etc...
J'ai une première fonction qui retourne l'entrée sous la forme d'une structure:[{1:2,3,},{10:11,12}]
Je dois maintenant "parser" cette structure
sous la forme [{1,2},{1,3},{10,11},{10,12}]
Ceci va me permettre d'utiliser ces indexes pour récupérer les coordonnées des points correspondant et tracer ensuite des lignes de connexion.


yanomano
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 16
11 sept. 2009 à 13:18
donc....

a=saisie.split( passage à la ligne "\r" ou "\n" ou "\r\n" à contrôler y compris en fonction du navigateur )
pour index=0 tant que index<=a.length
{ b=a[index].split(':');
c=b[1].split(',');
et ici, b[0] = 1 puis 1à puis.....
et c[index2]= 2 puis 3
11 puis 12
...
}

mais bon... c'est parce que vous faites cela comme ça !
si vous demandiez un saisie différente,
ce serait une "autre séquence"
0
Rejoignez-nous