2011-07-09 2 views
0

Je regarde un codage alternatif qui utilise deux pour la boucle, mon code est nécessaire pour écraser la valeur dans le tableau b dans un si b a une valeur plus grande que a, après pause et boucle un continuera point sur l'index suivant jusqu'à ce qu'il a la valeur 'mm' suivante pendant que la boucle b reprendra d'où elle était "break"meilleur code pour 2 pour la boucle?

Y a-t-il un code de nettoyage?

var a = ['100','200','300','400','500']; 
var ma = ['-','mm','-','-','mm']; 

var b = ['100','150','160','200','250','300','500','600']; 
var mb = ['-','-','-','-','mm','','','mm']; 

for loop a 
    if(ma[]=='mm') 
    { 
    for loop b 
     if(ma[]=='mm') 
     { 
     if (a < b) { 
     break; 
     } 
     } 
    } 
+3

Je parie que personne ne répondra :) Pouvez-vous expliquer plus clairement ce dont vous avez besoin? – alxx

+0

Cela n'a pas de sens. Surtout le second: if (ma [] == 'mm') Pourquoi le vérifierais-tu encore, en cas de faux positif la première fois que tu le vérifies? pour la boucle a if (ma [] == 'mm') // tu vérifies ici 1ère {pour la boucle b si (ma [] == 'mm') // on la vérifie encore? Hein? ??Quand est-ce que cela est toujours faux? {if (a Nate

Répondre

0

C'est ce que je pense que vous essayez de dire, mais j'ai besoin de plus d'informations.

Je suis à la recherche d'une alternative à code my imbriqué pour les boucles. Ma méthode nécessite un pour remplacer la valeur tableau a la valeur en tableau b,

si un est inférieur à b

Après la break de la boucle intérieure, un continuera pour incrémenter jusqu'à suivant mm valeur et b continuera à incrément jusqu'à la prochaine mm valeur. donc des changements à a se produisent seulement si

  1. La valeur à l'indice actuel dans ma égale mm, ce qui correspond à la valeur de l'indice actuel mb

  2. a est inférieur à b, affecter la valeur en b [j] à un [i]. Ensuite, les pauses de la boucle interne b et nous continuons le long de a et recommencer

En supposant que est ce que vous voulez, alors vous avez juste besoin de garder une trace de j avant la pause

donc puis quand vous itérez

for (j = setIndex; j < b.length ; j++) 

avant la pause, dans le conditionnel, vous pouvez dire

setindex = j+1; 

La prochaine fois que la boucle commencera, elle devrait commencer là où elle s'est arrêtée.

0

Je suppose que la raison pour laquelle vous avez du mal à résoudre ce problème est que vous avez des difficultés à définir le problème. Comme l'a dit phwd, si vous pouviez clarifier votre question, nous pourrions peut-être vous aider.

Si vous clarifiez votre question, vous constaterez peut-être que vous pouvez y répondre vous-même sans aide. C'est la programmation.