Lógica, perguntado por bagifo6204, 8 meses atrás

Uma loja virtual permite a seus visitantes filtrar produtos pelo preço. Existe um array com os preços dos produtos. Um programador já criou uma função maisBaratosQue(valor, precos) que retorna um array com os preços dos produtos mais baratos que o valor passado como parâmetro. Outro programador já criou uma função maisCarosQue(valor, precos) que retorna um array com os preços mais caros que o valor passado como parâmetro. Chegou sua vez! Crie uma função precosEntre(valorMenor, valorMaior, precos) que deve utilizar as funções maisBaratosQue e maisCarosQue para retornar os preços que estão entre o valorMenor e o valorMaior. Sua função deve receber então dois parâmetros: valorMenor para representar o valor mínimo dos preços a serem listados valorMaior para representar o valor máximo dos preços a serem listados precos para representar um array com os preços dos produtos Ela deve retornar um array com todos os preços entre valorMenor e valorMaior

Soluções para a tarefa

Respondido por felipeeneto
73

Resposta:

function maisBaratosQue(valor, precos) {

   return precos.filter(p => p <= valor);

}

 

function maisCarosQue(valor, precos) {

   return precos.filter(p => p >= valor);

}

function precosEntre(valorMenor, valorMaior, precos) {

   return maisCarosQue(valorMenor, maisBaratosQue(valorMaior, precos));

}

console.log(precosEntre(5, 10, [1,2,3,4,5,6,7,8,9,10])); // [ 5, 6, 7, 8, 9, 10 ]

Explicação:


rafaelaud15: Muito obrigado, mas sinceramente não entendi nada.
gabriellefariat: também nao entendi, se puder explicar
selinakl: Agradeço se puder explicar, pois também não entendi
Respondido por anaotavianog
31

Resposta:

function maisBaratosQue(valor, precos) {

  return precos.filter(p => p <= valor);

}

function maisCarosQue(valor, precos) {

  return precos.filter(p => p >= valor);

}

function precosEntre(valorMenor, valorMaior, precos) {

  return maisCarosQue(valorMenor, maisBaratosQue(valorMaior, precos))

}

Explicação:

A função maisCarosQue, assim como a função maisBaratosQue, possuem 2 parâmetros (valor e preços).

-Valor seria o valor que você quer que seja mais barato ou mais caro.

-Preços seria todos os valor dos produtos que existem.

ex: se tem produtos de preços 15, 20, 25, 30, 40, 45 e o valor que você quer filtrar é 28, ele vai retornar (30, 40, 45)..

Porém na função precosEntre você possui 3 variáveis, pois você limita o valor superior e também o valor inferior da filtagrem, logo para retornar você usa:

maisCarosQue(valorMenor, maisBaratosQue(valorMaior, precos)

, pois o parametro valor da função maisCarosQue passa a ser o valorMenor, ou seja, o mínimo valor que pode assumir, e o parâmetro preços passa a ser a função maisBaratosQue, sendo seu parâmetro valor definido como valorMaior, para que os preços que forem ser usados na função maisCarosQue já sejam os valores limitados de acordo com o máximo que podem assumir.

Perguntas interessantes