2011-05-22 10 views
1

Dans mon formulaire, j'ai plusieurs champs (zones de texte cachées) qui ont le même nom (eform_id). (Par exemple, j'ai 7 zones de texte qui contient des valeurs cachées comme celui-ci 1234, -1235,1236,1237, -1238, -1239,1240 ...Comment séparer une liste en deux listes

Je reçois ces valeurs à mon dossier js comme celui-ci.

var eformDetailIds=$("[name=eform_id]").map(function(){ 
    return $(this).val() }).get(); 

maintenant, mon exigence est que je dois séparer ce eformDetailIds en deux listes .. (ou une chaîne de valeurs séparées par des virgules) afin que la première liste contient toutes les valeurs positives et la deuxième liste contient toutes les valeurs négatives ..

Ceci est une exigence très urgente et je cherche votre aide dans ce S'il vous plaît aidez-moi avec co approprié de qui résout mon problème.

Thans à l'avance -sathya

Répondre

1

bien:

var positives = $.map(eformDetailIds, function(e) { return e >= 0 ? e : null; }); 
var negatives = $.map(eformDetailIds, function(e) { return e < 0 ? e : null; }); 

Si vous revenez null du rappel ".map()", alors rien ne sera ajouté au tableau de résultats.

Vous pouvez aussi le faire avec un simple (r) boucle for:

var positives = [], negatives = []; 
for (var i = 0; i < eformDetailIds.length; ++i) 
    if (eformDetailIds[i] >= 0) 
    positives.push(eformDetailIds[i]); 
    else 
    negatives.push(eformDetailIds[i]); 
} 

Si vous voulez une forme de chaîne séparée par des virgules, il suffit d'appeler ".join()" sur le tableau:

var strsPositive = positive.join(','); 
+0

Merci beaucoup Pointy.je vais essayer cela et vous faire connaître le résultat. Il semble que cela fonctionnerait ... très reconnaissant à vous et votre réponse rapide. – Satya

Questions connexes