Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

202
Visualizações
El método .map() no genera una nueva matriz a partir de la función de retorno

En un desafío de reacción en el que debería crear una tarjeta que necesita generar una cantidad X de números, donde X es la entrada de un usuario. Así que creé una función llamada "getRandomNum" para generar un número aleatorio dentro de un rango y verificar si el número ya está en la matriz, si es así, se generará otro número. Luego, creé otra función llamada "generateNumbers" para crear una matriz de tamaño de entrada del usuario, llamada arrayNumbers, y luego usé el método .map() usando "getRandomNum" como devolución de llamada, para insertar los números aleatorios no repetidos en la matriz, luego está el problema, la matriz sigue siendo la misma que antes del método .map(). Vea el código a continuación, por favor:

 import './Megasena.css' import { useState } from 'react' const getRandomNum = (minParam, maxParam, array) => { let min = Math.ceil(minParam) let max = Math.floor(maxParam) let numGerado = parseInt(Math.floor(Math.random() * (max-min+1)) + min) return array.includes(numGerado) ? getRandomNum(minParam, maxParam, array) : numGerado } const generateNumbers = amountOfNumbers => { let arrayNumbers = Array(amountOfNumbers).fill(0) arrayNumbers.map(_ => getRandomNum(1, 99, arrayNumbers)) if (amountOfNumbers <= 40) { return (arrayNumbers.map(num => { return ( <li key={num} className="numberItem">{num}</li> ) }) )} else { return (<p>A quantidade máxima de itens é 40!</p>) } } export default props => { const [numberOfItens, setNumberOfItens] = useState(0) return ( <div className="megasenaComp"> <div className="numbersArea"> <ul className="numbersList">{generateNumbers(numberOfItens)}</ul> </div> <div className="inputArea"> <label htmlFor="inputNumItens">Quantidade de Números:</label> <input id="inputNumItens" type="text" onChange={e=> {setNumberOfItens(+e.target.value)}} /> </div> </div> ) }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

map() siempre devolverá una nueva matriz Consulte esta documentación .

Por lo tanto, debe recopilar los datos en una nueva variable o reescribir la variable existente y luego iterar sobre ella.

Puedes hacer algo como a continuación:

 const generateNumbers = amountOfNumbers => { let arrayNumbers = Array(amountOfNumbers).fill(0) arrayNumbers = arrayNumbers.map(_ => getRandomNum(1, 99, arrayNumbers)) if (amountOfNumbers <= 40) { return (arrayNumbers.map(num => { return ( <li key={num} className="numberItem">{num}</li> ) }) )} else { return (<p>A quantidade máxima de itens é 40!</p>) } }
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda