Creer des couples depuis un Array d'objets [Résolu]

Signaler
Messages postés
4
Date d'inscription
lundi 4 octobre 2004
Statut
Membre
Dernière intervention
11 septembre 2009
-
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
-
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

Messages postés
4
Date d'inscription
lundi 4 octobre 2004
Statut
Membre
Dernière intervention
11 septembre 2009

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
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
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
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
>>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
Messages postés
4
Date d'inscription
lundi 4 octobre 2004
Statut
Membre
Dernière intervention
11 septembre 2009

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}]
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
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 ','
Messages postés
4
Date d'inscription
lundi 4 octobre 2004
Statut
Membre
Dernière intervention
11 septembre 2009

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
Messages postés
4933
Date d'inscription
samedi 1 juillet 2006
Statut
Membre
Dernière intervention
2 février 2015
11
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"