Jump to content

Array with for loop with 2 statements


tscarq

Recommended Posts

Boa noite,

Sou iniciante na programação e não estou a conseguir parar o loop deste  código:

 

freelancersarray = [];

var xMen = ['Professor X', 'Cyclops', 'Beast', 'Iron-Man', 'Hobgoblin'];
var freelancers = ['Legion', 'Magneto'];

xMen.pop();
xMen.pop();


for(i=0, j=0; i<freelancers.length; i++, j++) {
    
    freelancers.push(...xMen);
   
        console.log(freelancers[i]);
}
 

 

A ideia é retirar da variável xMen  os 2 últimos itens e depois fazer um for loop em que junte o array xMen ao array freelancers. O código resulta só que  está a fazer um loop infinito em vez de parar quando imprime os dois arrays. Se alguém eme conseguir ajudar a perceber porquê agradeço.                         

Link to comment
Share on other sites

Isto é javascript. Deveria estar aqui: https://www.portugal-a-programar.pt/forums/forum/83-javascript/

A razão de não conseguires parar o for é porque estás constantemente a aumentar o tamanho do array com o qual estás a fazer a condição.

freelancers.length é 2 antes de iniciar o ciclo. Ao fazeres o push do xMen em freelancers, o valor de freelancers.length vai passar para 7. e por cada iteração que fazes no ciclo, aumentas este array em mais 5 elementos.

Para retirares elementos de um array, podes utilizar o método pop()

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop?retiredLocale=pt-PT

A variável j não é necessária nesse for.

Cumprimentos,
iron

Link to comment
Share on other sites

1 hora atrás, iron disse:

Isto é javascript. Deveria estar aqui: https://www.portugal-a-programar.pt/forums/forum/83-javascript/

A razão de não conseguires parar o for é porque estás constantemente a aumentar o tamanho do array com o qual estás a fazer a condição.

freelancers.length é 2 antes de iniciar o ciclo. Ao fazeres o push do xMen em freelancers, o valor de freelancers.length vai passar para 7. e por cada iteração que fazes no ciclo, aumentas este array em mais 5 elementos.

Para retirares elementos de um array, podes utilizar o método pop()

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/pop?retiredLocale=pt-PT

A variável j não é necessária nesse for.

A questão é como é que eu limito o ciclo a 1x o freelancers + 1x o xMen?? eu estava a assumir que como no statement eu meti i<freelancers.length e que como eu estava a incluir o array x.MEN estava incluído no array freelancers, que o length estaria concidionado aos 5 elementos. 

 

 fiz alterações ao código com base no teu comentário. Agora o código funciona(imprime os elementos correctos na quantidade certa). No entanto, aparece-me uma mensagem de erro a dizer: 

>>>>Code is incorrect

You should use the first expression of the for loop to declare a variable.

 

var xMen = ['Professor X', 'Cyclops', 'Beast', 'Iron-Man', 'Hobgoblin'];
var freelancers = ['Legion', 'Magneto'];

xMen.pop();
xMen.pop();

for(i=0; i<freelancers.length; i++) {
       
        freelancers.push(...xMen);
    
        freelancers.length = 5;
    
        console.log(freelancers[i]);
}// prints Legion Magneto Professor X Cyclops Beast

 

Não estou a perceber que variável possa meter

 
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.