Funções de Array JavaScript - Aula 2 - filter()

แชร์
ฝัง
  • เผยแพร่เมื่อ 13 ธ.ค. 2024

ความคิดเห็น • 37

  • @danielaqueiroz7104
    @danielaqueiroz7104 2 ปีที่แล้ว +17

    Para quem não entendeu: A função indexOf() retorna o primeiro índice em que o elemento pode ser encontrado no array.
    ex: Temos o seguinte vetor " const vet = [2, 4, 5, 4] " e a
    validação " vet.indexOf( elem ) === i " ou seja para ele ficar no novo vetor o index do elemento deve ser o mesmo indice do vet.
    para o elemento 2: o indice dele é zero e o indexOf tbm é zero.
    para o elemento 4: o indice dele é 1 e o indexOf tbm é 1.
    para o elemento 5: o indice dele é 2 e o indexOf tbm é 2.
    para o elemento 4: o indice dele é 3 e o indexOf é 1. com isso ele sai do array, pq ele nao obedeceu a validação.
    o novo array = [2, 4, 5]

    • @dpwoficial
      @dpwoficial  2 ปีที่แล้ว

      Obrigado por complementar a explicação, Daniela. :)

    • @meunamingaum7000
      @meunamingaum7000 9 หลายเดือนก่อน

      EU TE AMO. OBRIGADO OBRIGADO OBRIGADO!!!!!!

  • @salvimateus
    @salvimateus 4 ปีที่แล้ว +13

    Opa, obrigado pela aula!
    Não consegui captar bem a lógica do algoritmo com a nova sintaxe do js. Ainda não estou com prática nela e fiquei meio perdido na explicação.

    • @dpwoficial
      @dpwoficial  4 ปีที่แล้ว +5

      É a sintaxe moderna para algo que seria mais ou menos assim:
      function unique( elem, index, arr ) {
      return arr.indexOf( elem ) === index
      }
      Aí o filter() vai passar cada elemento do array e fazer esse teste, fazendo sobrar só os que deram true.
      Dá uma olhada no artigo escrito (tem na desc o link) que lá explica com mais detalhes.
      Vlwww

  • @TechLobo305
    @TechLobo305 4 ปีที่แล้ว +2

    Obrigado amigo, essa função é bastante útil

    • @dpwoficial
      @dpwoficial  4 ปีที่แล้ว

      Com certeza, Leandro. Quebra um galhão.

  • @deividd.9497
    @deividd.9497 3 ปีที่แล้ว +3

    o que aconteceu aqui gente kkkkkkkkkkk, mdsssss buguei todo

    • @dpwoficial
      @dpwoficial  3 ปีที่แล้ว +1

      Como assim? =P

    • @deividd.9497
      @deividd.9497 3 ปีที่แล้ว +1

      @@dpwoficial Não consegui entender o exemplo, mas olhei os comentários aqui e teve um pessoal que fez exemplos simples que compreendi

    • @dpwoficial
      @dpwoficial  3 ปีที่แล้ว +1

      @@deividd.9497 Maravilha, então.
      Se é seu primeiro contato com a coisa, é normal não entender. Mas assista ao vídeo 200x, se for preciso, que você vai ver que não é tão complexo assim. :)

    • @danimichely2723
      @danimichely2723 2 ปีที่แล้ว

      Real, eu também buguei kkk

  • @youngdll7
    @youngdll7 2 ปีที่แล้ว +1

    e se fosse um array de nomes e numeros ? como filtraria só os nomes ? ou numeros ? ex:
    const arr = ['nome1',6,7,9,'nome2',10,23,50,'nome3'];

    • @dpwoficial
      @dpwoficial  2 ปีที่แล้ว

      De várias maneiras diferentes. Por exemplo, com isNaN().

  • @CristinaSoile
    @CristinaSoile 2 ปีที่แล้ว +1

    Video ótimo, deixou bem claro a função do filter(). eu só não entendi bem o indexOf() ali no meio. sei q ele mostra a posição. eu entendi q vc programou que. 'Se a posição desse array for igual a index "que tbm eh uma posição"'... não entendi pq ele não repetiu os numeros, eu achei q ele só iria percorrer. achei q teria que complementar mais, falando para o Java, olha não repete esses aqui. hahah não sei se fui clara. Mas se puder me esclarecer mais, ficarei grata.

    • @dpwoficial
      @dpwoficial  2 ปีที่แล้ว

      Cristina, não entendi bem.
      Você mesma descreveu qual foi a lógica, rsrs... Qual é a dúvida?

    • @CristinaSoile
      @CristinaSoile 2 ปีที่แล้ว

      @@dpwoficial oq fez ele não repetir os números no array?

    • @dpwoficial
      @dpwoficial  2 ปีที่แล้ว

      @@CristinaSoile Ele vai testar a equivalência de índices no array, certo?
      Então, ele vai testando 1 por 1... Se ele encontra um número repetido, o índice vai ser diferente (ele vai considerar o duplicado que apareceu antes).
      Daí, não vai passar pela filtragem e o resultado vai ser números únicos no novo array. :)

  • @thiagoandrade3704
    @thiagoandrade3704 2 ปีที่แล้ว +1

    nao entendi o codigo de exemplo na parte do indexOf

    • @dpwoficial
      @dpwoficial  2 ปีที่แล้ว

      Oi, Thiago.
      Nesse trecho, estamos testando se o índice do array original é o mesmo que o índice do elemento.
      developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf

    • @thiagoandrade3704
      @thiagoandrade3704 2 ปีที่แล้ว +1

      @@dpwoficial obrigado consegui entender com sua explicação. ele só retorna true se o indice do elemento buscado for o mesmo do elemento em questão, assim ele so pega a primeira ocorrência daquele elemento e se for exatamente igual incluindo o tipo

  • @DouglasSantosTI
    @DouglasSantosTI 2 ปีที่แล้ว +1

    O que o povo fica confuso é com a função de callback, pra quem está iniciando fica complicado entender.

    • @dpwoficial
      @dpwoficial  2 ปีที่แล้ว

      Tem que entender. Isso é o dia-a-dia de JS.

  • @yannlima6201
    @yannlima6201 2 ปีที่แล้ว

    E se eu quisesse objetos duplicados?

    • @dpwoficial
      @dpwoficial  2 ปีที่แล้ว

      Como assim?

    • @yannlima6201
      @yannlima6201 2 ปีที่แล้ว

      @@dpwoficial exemplo, ter um array com objetos duplicados. Aí através do filter, eu teria que criar um novo array, só que sem os objetos duplicados

    • @dpwoficial
      @dpwoficial  2 ปีที่แล้ว

      @@yannlima6201 Veja se é o mesmo caso da resposta que dei para o Fabiano Queiroz Monte aqui nos comentários.

    • @yannlima6201
      @yannlima6201 2 ปีที่แล้ว

      @@dpwoficial é quase igual, o problema é que não é um array comum como no vídeo, mas sim de objetos

    • @dpwoficial
      @dpwoficial  2 ปีที่แล้ว

      @@yannlima6201 Veja se isso ajuda: dev.to/marinamosti/removing-duplicates-in-an-array-of-objects-in-js-with-sets-3fep

  • @FabianoQueirozMonte
    @FabianoQueirozMonte 2 ปีที่แล้ว +1

    E o contrário? Quero somente os unicos.

    • @dpwoficial
      @dpwoficial  2 ปีที่แล้ว

      Neste caso, seria um processo de 2 etapas:
      1. Encontrar os duplicados
      2. Ver no array quais são diferentes dos encontrados
      ```js
      const items = [1, 2, 2, 4, 3, 4, 3]
      const duplicatedItems = items.filter((e, i, a) => a.indexOf(e) !== i)
      const uniqueItems = items.filter(x => !duplicatedItems.includes(x))
      ```

  • @delicodii5211
    @delicodii5211 3 หลายเดือนก่อน

    Explica o bagui, véi. C tá só mostrando funcionar

    • @dpwoficial
      @dpwoficial  3 หลายเดือนก่อน

      Tá explicado sim, meu bom.

  • @RodrigoAdriano
    @RodrigoAdriano 3 ปีที่แล้ว

    Só nao entendi muito bem como a função sabe quais sãos os elem, index e arr

    • @dpwoficial
      @dpwoficial  3 ปีที่แล้ว +1

      Pela ordem dos parâmetros. Ela foi feita para isso. :)