Hoje, vamos dar uma olhada em outro método de array JavaScript, que é o método some()
. Estaremos aprendendo como determinar se um item existe em um array usando o método some()
.
Como sempre, os exemplos de código neste artigo são escritos na linguagem JavaScript. Portanto, o conhecimento da língua é necessário para a compreensão adequada. Sem mais delongas, vamos mergulhar.
some()
?O método Javascript some() determina se pelo menos um membro da matriz satisfaz o teste definido pela função fornecida. Ele retorna true se encontrar um elemento na matriz para o qual a função especificada retorna true; caso contrário, retorna falso. Não faz alterações no array.
Vamos rever este trecho de código para uma melhor compreensão deste método:
const basket = ["oranges", "apples", "pineapple", "yam"] basket.some(bas => bas.length === 3) // true basket.some(bas => bas.length <= 1) // false
Simplesmente tentamos testar se o comprimento de uma das frutas no array da cesta é exatamente igual a 3. Pelo menos no array, um membro atende a este teste; é "inhame" neste caso. Nosso resultado esperado seria verdadeiro. A segunda condição verifica se há algum comprimento de fruta menor ou igual a 1. Isso resultaria em falso porque obviamente não temos nenhum comprimento menor ou igual a 1.
some()
?O método javascript some() é fácil de usar; Deixa-me mostrar-te como.
Vamos começar entendendo como a sintaxe é escrita.
A sintaxe é escrita simplesmente envolvendo a palavra 'some' com um parêntese '()' da seguinte forma:
some()
Por ser um método, ele aceita argumentos, o que oferece maior flexibilidade sobre o que você pode fazer com uma matriz usando o método some().
Eles são os seguintes:
O parâmetro element indica o elemento atual que está sendo processado no array.
O índice é apenas o índice do elemento atual que foi processado no array.
Este é o array no qual chamamos o método some().
Agora que entendemos a sintaxe, vamos ver como é o método completo.
some((element, index, array) => { /*... */ })
Como você pode ver, temos os três parâmetros incluídos no trecho de código acima, que fornece um exemplo claro de como construir esse método.
Dependendo de suas necessidades, você pode optar por ignorar certas características. Semelhante ao índice, você pode oferecê-lo como uma das opções se quiser detalhes extras sobre o array. Nem sempre todos os critérios devem ser incluídos.
As três maneiras comuns de escrever Javascript são as seguintes:
A função de seta foi introduzida no ES6, que tenta resolver alguns problemas enfrentados pela função tradicional. Esta função também pode ser usada com os métodos some():
some((element, index, array) => { /*... */ })
Temos a capacidade de escrever a função callback no método some() sem armazená-la em uma variável.
const basket = ["oranges","apples","pineapple","yam"] const result = basket.some(function (element, index, array)) { return element.length >= 7 }) console.log(result)
Esse estilo pode ser escrito primeiro declarando a função e armazenando-a em uma variável, depois passando-a como um callback para o método some(), assim:
const basket = ["oranges","apples","pineapple","yam"] function callBack(bas){ return bas.length === 7 } const result = basket.some(callBack) console.log(result)
Ao processar envios de formulários, a função some()
pode ser usada para determinar quais campos de entrada atendem a requisitos específicos. Por exemplo, você pode verificar se todas as entradas contêm endereços de e-mail válidos ou se pelo menos um campo obrigatório foi preenchido.
Vou dar um exemplo de como isso pode parecer.
const formInputs = document.querySelectorAll('input'); const isAnyInputEmpty = Array.from(formInputs).some(input => input.value === ''); if (isAnyInputEmpty) { console.log('Please fill in all required fields.'); } else { console.log('Form submitted successfully.'); }
No exemplo de código, garantimos que o usuário não envie um campo vazio; queremos notificá-los se eles deixarem em branco imediatamente. E se eles atenderem aos requisitos enviando pelo menos os dados relevantes, queremos tratar do envio.
Se tivermos um carrinho de produtos ou uma estrutura de dados em nosso aplicativo da Web, podemos usar some() para determinar se existe um produto específico. Isso é particularmente útil quando queremos executar determinadas ações com base na presença ou não de um item. Vamos dar uma olhada neste exemplo de código que explica melhor.
const shoppingCart = ['shoes', 'T-shirt', 'trouser']; const itemPresent = shoppingCart.some(item => item === 'trouser'); if (itemPresent){ console.log('Product exists in the cart.') } else { console.log('Product does not exist in the cart.') }
Verificamos se temos uma 'calça' no carrinho de compras. Entramos no console quando confirmamos que está no carrinho.
Ao implementar sistemas de autenticação e autorização de usuários, podemos usar some() para verificar se um usuário tem pelo menos uma permissão necessária ou pertence a qualquer uma das funções especificadas. Isso nos permite controlar o acesso a determinadas funcionalidades ou recursos.
const userRoles = ['admin', 'editor']; const permissions = ['admin', 'moderator']; const hasRequiredRole = permissions.some(role => userRoles.includes(role)); if (hasRequiredRole){ console.log('Access granted.') } else { console.log('Access denied.'); }
No exemplo de código, usamos a combinação dos métodos includes() e some() para conceder permissões com base nas funções do usuário. Se a função de um usuário estiver alinhada com a permissão necessária, concedemos acesso a ele; caso contrário, negamos o acesso a eles.
Em uma nota final, o método javascript some() é usado para testar as condições. Não altera o array original. Eles aceitam três parâmetros: element, Index e array', onde o parâmetro element indica o elemento atual que está sendo processado no array e o parâmetro index é o “índice” do elemento atual que está sendo processado no array.
Obrigado por ler minha análise do método array do JavaScript, especificamente o método some(). O que você achou da explicação? Você vai tentar?
Deixe-me saber seus pensamentos nos comentários abaixo e siga-me no HackerNoon para artigos futuros.