Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como remover itens específicos de um Array?

Estou brincando de fazer um programa que simule o funcionamento da mega-sena, no qual o usuário joga as dezenas, e o programa compara com as dezenas sorteadas. O problema é que não quero que saiam zeros no sorteio, nem números repetidos. Para isso, estou tentando fazer um loop de verificação, que caso encontre um zero ou número repetido, remova o mesmo e sorteie novamente. Mas não encontrei nada didático o suficiente para um iniciante no google. Poderiam me ajudar?

function sorteia() {

                    var sorteia = []
                    contador2 = 1

                        while(contador2 <= 6) {

                        sorteia.push(Math.round(Math.random() * 60))

                        contador2++

                            }

                        for(ct1 = 0; ct1 <= 6; ct1++) {

                                if(sorteia[ct1] == 0) {

                                    sorteia.indexOf(ct1)
                                    sorteia.push(Math.round(Math.random() * 60))

                                }

                        }

                    return sorteia

                }

                function compara() {

                    for(contador4 = 0; contador4 <= 5; contador4++) {

                        for(contador3 = 0; contador3 <= 5; contador3++) {

                            if(aposta[contador4] == sorteio[contador3]) {

                                acertos++
                            }
                        }
                    }
                }

                function mostraDezenas(n, array) {

                    for(ct = 0; ct < n; ct++) {

                    sh(array[ct] + " ")

                    }
                }

                var sorteio = sorteia()
                var maxima = 60
                var aposta = []
                var acertos = 0
                var dezenas = parseInt(prompt("Digite aqui quantas dezenas deseja apostar"))
                var contador1 = 1

                alert("Lembre-se que a dezena NÃO pode ser maior que 60")

                while(contador1 <= dezenas) {

                    aposta.push(parseInt(prompt("Digite a dezena número " + contador1 + ":")))
                    contador1++

                }

                sh("Vamos conferir o resultado.")
                pl(3)
                sh("Os números nos quais você apostou foram: ")
                mostraDezenas(aposta.length, aposta)
                pl(3)
                sh("Os números sorteados foram: ")
                mostraDezenas(sorteio.length, sorteio)
                pl(3)

                compara()

                sh("Você acertou " + acertos + " dezenas.")
1 resposta
solução!

Realmente não existe um método no array que remove. Só que você pode usar a função filter, ela funciona mais ou menos assim:

const numeros = [1,2,3];
cons numerosFiltrados = numeros.filter(n => n > 1);

A variável numerosFiltrados vai ter agora um array só com os números 2 e 3. O método filter sempre vai te retonar um novo array com os elementos que passaram pelo seu filtro.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software