I’m having trouble developing my code

Asked

Viewed 67 times

-5

Enunciation:

Loop with Array - Negative Balance

A company sent a list containing the monthly numbers of everything it billed, and our job is to help them create a report that shows in how many months they had the negative balance.

var listaDeGanhos = [10, 30, -10, -5, -1, 40]

Based on the array above, which is available in the code, loop it to check how many months have had negative values and store the count a variable called totalNegativos which is also available in the code.

Utilize .length to bring the size of the array.

My code so far has stayed that way:

var listaDeGanhos = [10, 30, -10, -5, -1, 40]
var totalNegativos = 3

for (let i = 0; i < totalNegativos.length; i++) {
  if (totalNegativos[i] == busca) {
    console.log(" " + listaDeGanhos[i])
  }
}
  • Take a look in those questions, maybe they’ll help you.

3 answers

1

I believe you need to better understand the question.

What is the meaning of your code??? Let’s go there::

var listaDeGanhos = [10, 30, -10, -5, -1, 40]  // Aqui você tem a variável que carrega os valores. Então é dela que vc deve verificar a quantidade de saldos negativos.
var totalNegativos = 3 // o que tem essa variável????? Qual o sentido dela?????

for(let i=0; i < totalNegativos.length; i++){ // porque seu for só vai até 3, se o vetor com os valores é maior?

      if(totalNegativos[i] == busca){ // busca o que? essa variavel busca nem existe no contexto.

console.log(" " + listaDeGanhos[i])

}

Follow the correct code:

console.log(calcularTotalNegativos());  // em javaScript vc começa chamando a função e vai imprimir o valor que estiver no retorno dela.

function calcularTotalNegativos(){
  var listaDeGanhos = [10, 30, -10, -5, -1, 40];
  var totalNegativos = 0; // essa variável vai guardar a quantidade de negativo

      for(let i=0; i < listaDeGanhos.length; i++){ // o for irá rodar até o tamanho do valor que estiver no vetor de valores.
        if(listaDeGanhos[i] < 0){ // algo negativo, se condiz ser menor que zero. Então compara os valores do vetor para ver se são menores que zero.
          totalNegativos++; // se for menor que zero, então soma a variável que irá guardar o número de negativos.
        }
      }
      return(totalNegativos); // retorna esse número ao fim da execução do for.
}

Try to study more logic.

1

This exercise can be done in many ways and I’ll show you some of them, starting with the one you’re trying to solve:

  1. The first step is to define a variable for you listaDeGanhos and an empty array of saldoNegativo.
  2. So you iterate to listaDeGanhos using the for and for each item in this list, you check whether the value is less than or equal to 0, if so, you will store it in the array saldoNegativo, using the push().
  3. Then just call the variable saldoNegativo, which already contains every month that the balance has been negative.

// declarar variáveis
var listaDeGanhos =  [10, 30, -10, -5, -1, 40]
var saldoNegativo = [];
    
   // itera o array listaDeGanhos
for(i = 0; i < listaDeGanhos.length; i++ ){
  // verifica se o valor é igual ou menor que zero
  if( listaDeGanhos[i] <= 0){
    // adiciona o item no array de saldoNegativo
    saldoNegativo.push(listaDeGanhos[i]);
  }
}

// printa o valor de saldoNegativo
 console.log(saldoNegativo)

// printa a quantidade de itens em saldoNegativo
 console.log(saldoNegativo.length)

Another way to do it is by using the filter javascript, which makes code much simpler, doing basically the same thing we did in the previous section.

  1. The difference here is that I used let instead of var to declare the variable listaDeGanhos, because var has become obsolete to declare variables, even if it is still widely used. I also removed the saldoNegativo and passed to the next line, where he already gets the return of the method itself filter
  2. As the name already says, filter() will filter the elements inside listaDeGanhos according to the condition we define (in this case, any item with a value of 0 or less)
  3. The rest of the code remains untouched, only printing the result within 'Balance'

let listaDeGanhos =  [10, 30, -10, -5, -1, 40]

let saldoNegativo = listaDeGanhos.filter((item) => {
    return item <= 0
})

// printa o valor de saldoNegativo
console.log(saldoNegativo)

// printa o número de itens armazenados em saldoNegativo
console.log(saldoNegativo.length)

I hope I’ve helped (=

0

You must add up the number of months, that is, the positions of the array. By placing "+ listings[i]" you are adding up the content value and not the position.

var listaDeGanhos = [10, 30, -10, -5, -1, 40];
var totalNegativos = 0;

//seu loop aqui:
for (var i= 0 ; i < listaDeGanhos.length ; i++) {

    if (listaDeGanhos[i] < 0) {
        totalNegativos += 1; // Para acumular na variável os meses que são negativos.
    }   
}

console.log(totalNegativos)

Browser other questions tagged

You are not signed in. Login or sign up in order to post.