Тёмный

Como usar o Reduce? Convertendo arrays em outros tipos  

Mario Souto - Dev Soutinho
Подписаться 89 тыс.
Просмотров 21 тыс.
50% 1

Você já usou o reduce do JavaScript ou sempre fica com pé atrás e acha muito confuso? Nesse vídeo vamos explorar várias formas de usar esse método dos Arrays que além de servir de base para criação de todos os métodos funcionais que temos, é extremamente útil quando precisamos transformar um array em algum outro tipo de dado, lembrando também que temos que tomar cuidado com complexidade na hora de lermos o código.
Agora chega de enrolação e bora ver o vídeo! 😋
🔸Quer ver mais conteúdos meus? Segue ai!
■ / omariosouto
✅ Tem dúvidas sobre arquitetura de camadas? Tratamento de erros? Quais as bases para colocar um projeto no ar de forma automática com Integração Contínua? Conheça meu curso do canal o Construindo CRUDs com qualidade hotm.art/mWYNKk3
⏳ Capítulos do Vídeo
00:00 Introdução
01:09 Primeiro contato com o reduce
03:16 Reduce de array para string
05:48 Reduce de array para objetos
#JavaScriptMap #DicasDeJavaScript #JavaScriptForEach

Наука

Опубликовано:

 

28 июл 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 134   
@DevSoutinho
@DevSoutinho Год назад
✅ Tem dúvidas sobre arquitetura de camadas? Tratamento de erros? Quais as bases para colocar um projeto no ar de forma automática com Integração Contínua? Conheça meu curso do canal o Construindo CRUDs com qualidade hotm.art/mWYNKk3
@pabloherzberg
@pabloherzberg Год назад
SHOW, já sou pleno na minha carreira e sempre me confundo com reduce e esse exemplo de tratativa de objetos me esclareceu muito. De verdade, muito obrigado! Teus vídeos sempre me ensinam algo útil
@DevSoutinho
@DevSoutinho Год назад
Muuito obrigado pelo feedback!!
@Frankilintel
@Frankilintel 3 года назад
Sensacional! Nunca tinha visto um vídeo tão esclarecedor sobre reduce. A maioria fala o básico, apenas somando números. Parabéns!
@DevSoutinho
@DevSoutinho 3 года назад
Muito obrigado pelo feeedback, demais ler isso!!!
@rayanequeiroz1937
@rayanequeiroz1937 2 года назад
VOCÊ É PERFEITO!! Nunca tinha visto uma explicação tão clara assim, sempre vi explicarem meia boca ou o básico, tipo "ah vc bota isso aqui e dá isso". Parabéns pela didática excelente, finalmente entendi esse troço graças a você hahahah
@luisguilhermefreitassales1718
@luisguilhermefreitassales1718 2 года назад
Meu deus didática maravilhosa salvou mtoo
@yvanrondon714
@yvanrondon714 Год назад
Muito bom esse vídeo! De verdade mesmo, me deu uma luz pra resolver problemas justamente com API KKKKK e eu assisti so pra refrescar a memória! show!
@izabellederrihu7968
@izabellederrihu7968 10 месяцев назад
muito bom, ja tive um problema em que a gente precisava iterar no array, criar NOVOS ARRAYS de objetos com aquele array. Nunca tinha achado um exemplo mais robusto pra entender aquele problema melhor, o seu exemplo de pokemon chegou bem perto! obrigada
@ewerthonsilva7642
@ewerthonsilva7642 4 года назад
Caraca, vou fazer vários testes com essas transformações, muito foda!
@DevSoutinho
@DevSoutinho 4 года назад
Booooa!!! Nas próximas semanas tem mais tutoriais nessa linha
@Darthilandia
@Darthilandia 3 года назад
Muito boa essa função do reduce!
@brenokfk
@brenokfk 4 года назад
Cara que explicação sobre o reduce sensacional
@DevSoutinho
@DevSoutinho 4 года назад
Muuuuuuuitoo obrigado meu caro :D
@therosenstock
@therosenstock Год назад
Nossa, muito obrigada! Finalmente entendi como funciona xD
@AndrewDiass
@AndrewDiass 4 года назад
Seus videos são muito bons!!
@DevSoutinho
@DevSoutinho 4 года назад
Muuito obrigado man \o/
@yuripadilha4907
@yuripadilha4907 4 года назад
Vc me ganhou com o efeito dos pokémons, cara!
@DevSoutinho
@DevSoutinho 4 года назад
Créditos pro Lukinhaz hahaha
@analopes-to3dd
@analopes-to3dd 4 года назад
Muito boa a explicação, gostaria de ver mais coisas de Javascript, seria legal pra quem está começando.
@DevSoutinho
@DevSoutinho 3 года назад
Eu to num roteiro desses agora falando sobre um método de array que confunde mt gente!
@hakuenstudio
@hakuenstudio 4 года назад
Caraca que jeito fera de usar o reduce. Já vou começar a remover alguns for Loops do meu código hauahuahauahaua
@DevSoutinho
@DevSoutinho 4 года назад
Booooa!!!!
@tonistorres8244
@tonistorres8244 2 года назад
Faz dias que estou aconpanhando esse canal, mais hoje foi um dia especial você conseguiu ir para a velocidade 1.5x rsrs e isso ajudou muito no entendimento rsr mais super top a dica sobre reduce.
@DevSoutinho
@DevSoutinho 2 года назад
Ahahahahah que bom que tá curtindo e chegou no 1.5x daqui a pouco tá no 2x
@cafu0eu
@cafu0eu 4 года назад
Esse efeito de “debug” e visualização de valores de variáveis é algum plugin do vscode ou configuração? A propósito, muito bom o vídeo, já estou seguindo o canal!
@DevSoutinho
@DevSoutinho 4 года назад
Muito obrigado \o/ cara o plugin é o "Quokka" tem pra VsCode e outros editores é super útil pra fazer aqueles hacker rank e tal
@cesarsturmer8625
@cesarsturmer8625 3 года назад
tu é fera mano, gostei muito do vídeo e ainda mais que tu gosta de Pokémon também :))
@DevSoutinho
@DevSoutinho 3 года назад
ahahhaha valeu cesar! Tu n sabe o quanto que eu aprendi de programação com exemplos de pokémon
@crisaort
@crisaort 3 года назад
Cara, me ajudou sem eu ter procurado O_o .. estou no meio de um projeto, com 3 API s e precisava montar uma tela e tava fazendo de um jeito totalmente diferente... Depois dessa vou direto refatorar kkk
@g3andre
@g3andre 3 года назад
Conteúdo excelente...
@brunosthoughts4756
@brunosthoughts4756 Год назад
hmm interessante o exemplo dos objetos, mas fico imaginando o trabalho q deve ser fazer isso em typescript hahaha
@adriellycalil6895
@adriellycalil6895 4 года назад
Show!
@DevSoutinho
@DevSoutinho 4 года назад
Vaaaleu /o/
@devHB
@devHB 2 года назад
D1.4 - start maratona do canal;
@soutoigor_
@soutoigor_ 4 года назад
Resolveu a dúvida da minha vida com o reduce kkk nunca tinha entendido muito bem situações que poderia usar, facilita bastante algumas coisas do dia a dia. (Achei um Souto que é Dev haha)
@DevSoutinho
@DevSoutinho 4 года назад
CARACA OUTRO SOUTO QUE É DEV!!! QUE SHOW! HAHAHAHA #DevsSoutinhos
@duferreira1477
@duferreira1477 4 года назад
Sou iniciante e achei esse código beeeeeeeem doido! kkkkkkkkkk (Preciso estudar mais isso)
@DevSoutinho
@DevSoutinho 4 года назад
Eeita, deixa aqui nos comentários pontos que você tá estudando, se tiver curtido a explicação da pra trazer mais vídeos :)
@jamesribeiro9233
@jamesribeiro9233 Год назад
Bem bacana. Parabéns por compartilhar seu conhecimento. No meu ver até um pouco antes da metade, estava bem engajada a explicação, depois disso ficou muito confuso, e de difícil aprendizagem. Faltou colocar o espectador dentro do raciocínio e não ficar você conversando com você mesmo, comunicação muito acelerada até no 0.75, além de muita gesticulação com as mãos, quem sabe você se encaixe melhor fazendo essas gesticulações numa dinâmica com uma lousa física & virtual, ai ficaria mais relevante no meu ponto de vista. vlw!!
@DevSoutinho
@DevSoutinho Год назад
🙌
@AmandaAmaralDinhoka
@AmandaAmaralDinhoka 4 года назад
Valeu!!
@DevSoutinho
@DevSoutinho 4 года назад
Opa, eu que agradeço a audiência e o comentário 😁
@Aragir
@Aragir 3 года назад
Fala! Tenho gostado muito dia seus vídeos! Parabéns! Uma dúvida: este uso que você mostrou do reduce não fica muito parecido com forEach??
@sneto_dev_br
@sneto_dev_br 4 года назад
Maravilhosa explicação… Vlw
@DevSoutinho
@DevSoutinho 4 года назад
Que massa que curtiu \o/
@CelowsBR
@CelowsBR Год назад
Mano sensacional teus vídeos mas, a cabeça explode!!! 😅 javaScript é foda de lidar com exemplos assim. Dica que eu dou é: simula situações de cotidiano como se fosse um projeto real é isso que mais interessa na real! Forte abraço!
@moacirjunior1346
@moacirjunior1346 Год назад
Parabéns pelo vídeo! Se me permite contribuir, algo que pode limpar ainda mais a criação do objeto dos Pokémons é usar um spread operator para na mesma linha mesclar o array já existente no objeto com o novo valor da iteração atual.
@alfredoparreira469
@alfredoparreira469 2 года назад
Fala Mario, tudo na paz? Conheci o canal hoje e ja curti demais o conteúdo. Fiquei apenas com uma dúvida, qual extensão você usa no VsCode, pra ja ter o retorno do console.log "automaticamente". Abs :D
@DevSoutinho
@DevSoutinho 2 года назад
Opaaa, é o quokkajs!
@matheussoares1138
@matheussoares1138 Год назад
show
2 года назад
A didática ficou de lado aí na hora do Pokemon, mas valeu
@bb762
@bb762 Год назад
5:26 E se caso o nosso array tiver mais um elemento no final maior que o valor anterior, como por exemplo a string 'gato', quando reduce for operar nesta string vai verificar que ela é maior que o elemento anterior e retorná-la na variáveil maiorPalavra, assim a nossa variável vai conter a string 'gato', que não é a maior palavra
@henrique_ma
@henrique_ma 2 года назад
Qual o nome dessa extensão do vscode que já escreve do lado o retorno do que vc está escrevendo?
@linkopaladino
@linkopaladino 3 года назад
Por favor se tiver mais vídeos desse aonde não precisa usar For nem if, gostaria de conhecer mais classes incríveis que nem essa ! me indica aqui!
@DevSoutinho
@DevSoutinho 3 года назад
Vai ter mais vídeo nessa pegada sim!!! Pesquisa dps por point free programming, tu vai curtir \o
@matteushenryk1134
@matteushenryk1134 3 года назад
ótimo vídeo, dá um zoom maior na tela para ver mais facilmente os códigos .
@DevSoutinho
@DevSoutinho 3 года назад
Opa, nos vídeos mais novos eu resolvi isso sahusauhsa
@crowbr
@crowbr Год назад
Muito bom o conteúdo, gostei dessa extensão que já produz o resultado do console log na tela qual é o nome dela? Grato
@DevSoutinho
@DevSoutinho Год назад
QuokkaJS o nome /o
@leandrohendrix6487
@leandrohendrix6487 Год назад
Muito bom. Qual esse plugin que apreseta os dados em tempo de execução?
@DevSoutinho
@DevSoutinho Год назад
É o quokka JS!
@iagomedeiros3335
@iagomedeiros3335 2 года назад
alguém sabe qual a extensão que ele ta usando que consigo ver os console.log no corpo do vscode?
@DevSoutinho
@DevSoutinho 2 года назад
opera é o Quokka
@silasviana1340
@silasviana1340 4 года назад
Soutinho estou conferindo o canal pelo jabá feito no hipster.tech...ganhou o inscrito !! Bela explicação. Que extensão é essa que está usando para previamente mostrar os resultados ?
@DevSoutinho
@DevSoutinho 4 года назад
Opa é o Quokka js :)
@evertonverton6428
@evertonverton6428 4 года назад
As vezes o Mario se enrola nas palavras kkk
@DevSoutinho
@DevSoutinho 4 года назад
Várias vezes, na edição é meme pronto nos vídeos mais novos hahshahhaa
@ryanpinheiro2654
@ryanpinheiro2654 Год назад
Excelente vídeo fera. Mas diz aí, que extenção é essa que mostra o log na tu codeline?
@DevSoutinho
@DevSoutinho Год назад
QuokkaJS
@ryanpinheiro2654
@ryanpinheiro2654 Год назад
@@DevSoutinho vlw meu bom e parabéns pelo teu canal, virei fã!
@kaioalexandremarques525
@kaioalexandremarques525 Год назад
qual extensão ele para mostrar o resultado do console.log no próprio vs code?
@DevSoutinho
@DevSoutinho Год назад
quokkajs!
@urakferraz9452
@urakferraz9452 4 года назад
mano você é muito xerox do Filipe Deschamps
@DevSoutinho
@DevSoutinho 4 года назад
Ahahahhah confesso que vendo os vídeos dele eu peguei a mania de falar "delicinha" tanto que virou até meme na série do Flappy Bird e ele veio comentando hahaha. Admiro muito o trampo dele :) e tamo aqui tentando compartilhar conteúdo e ajudar uma galera também /o
@urakferraz9452
@urakferraz9452 4 года назад
@@DevSoutinho tá muito igual mano, mehlora isso ae abraço sucesso
@DevSoutinho
@DevSoutinho 4 года назад
Valeu pelo feedback, nessa época eu tinha usado esse recorte lateral pq tinha achado bacana nos vídeos dele e tal, nos mais atuais eu tô sempre usando a bolinha e dando mais prioridade pro codigo, pouco a pouco a gente vai fechando o formato mas é sempre bom aprender com quem já tá fazendo e tal. Outra inspiração forte pra mim è o Gaveta que edita pro Jovem Nerd e tem vários cursos falando sobre composição e como fazer edição e tal :)
@linkopaladino
@linkopaladino 3 года назад
O carisma pode ser o mesmo mas o Soutinho fala de forma mais suave que da para entender perfeitamente, Deschamps é fera mas preciso reduzir a velocidade de reprodução do vídeo rsrsrs
@devsantiag
@devsantiag 2 года назад
cara, que extensão é essa que já mostra o resultado sem abrir o console no navegador? Amei!!! Se alguém souber, vai me ajudar bastante...
@thiagoltltur
@thiagoltltur Год назад
Queria saber também, alguém pode informar?
@luccagalvao533
@luccagalvao533 10 месяцев назад
também quero saberrr achei q fosse a turbo console, que ajuda tbm mas não é a mesma coisa, vamos curtir pra suber esse coment
@linkopaladino
@linkopaladino 3 года назад
Eu vi esse video e fiz no meu pc, o exemplo do pokemon, e poercevi que o "ou"( || / or) ele tem um efeito de condicional, caso o index tipo seja igual ele apenas vai repetir, só que ele não repete então não cria outro array, só cria uma array vazio quando não é repetido ! a parte mais complicada é esse || , mas acho que entendi certo o efeito dele no Reduce !
@DevSoutinho
@DevSoutinho 3 года назад
Olha a parte de Curto Circuito: developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Operators/Operadores_Logicos
@guilhermesantos902
@guilhermesantos902 3 года назад
Eu achei que funcionasse como uma declaração sendo algo: Se Pokemon[tipo] quer dizer o mesmo que se isso existir,ou seja for igual a true, então se não existir essa propiedade ainda no obj ele pega o array vazio.
@kieffertorricilia3022
@kieffertorricilia3022 Год назад
Como você faz o console.log aparecer na prória linha? É alguma extensão do VSCode?
@lucasramos4439
@lucasramos4439 Год назад
Bom dia, descobriu qual extensão faz isso?
@rbltv
@rbltv Год назад
Que extensão é essa que já mostra o resultado no código?
@DevSoutinho
@DevSoutinho Год назад
É o quokkajs!
@linkopaladino
@linkopaladino 3 года назад
Vídeo maravilhoso, muito bom bem mastigadinha, vou tentar ver os vídeos do canal todo, precisando ! Mas tipo mano, eu vi um codigo parecido com esse para agrupar, e o outro programador usou um tal de "Spread Operator" que são os 3 pontinhos, ficou meio confuso rsrs mas vc tem um outro video explicando ele ?
@DevSoutinho
@DevSoutinho 3 года назад
Cara n tenho vídeo sobre spread mas ta pra sair, por hora da uma olhada aqui: developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Operators/Spread_operator
@franciscoetizel3158
@franciscoetizel3158 Год назад
vc é lindo cara
@DevSoutinho
@DevSoutinho Год назад
Aaah são seus olhos ahshahhs
@felipevash9964
@felipevash9964 3 года назад
Pokemon não tem plural, Mario! HAhahHAhA
@chanela6135
@chanela6135 Год назад
Qual o nome dessa extensão em que o console.log aparece no código? 1:35
@DevSoutinho
@DevSoutinho Год назад
Opa é o QuokkaJS
@chanela6135
@chanela6135 Год назад
@@DevSoutinho Obggg
@rodrigocirilo4253
@rodrigocirilo4253 2 года назад
sou bem iniciante e na parte dos pokemons foi uma viagem kkk.. ele falando e colocando pokemon aqui pokemon ali... eu ouvindo ele e com a mente em outra dimensão.. nao entendi nada kkkk que doidera.. dificil achar um video realmente para iniciante : (
@DevSoutinho
@DevSoutinho 2 года назад
Procura um outro vídeo aqui do canal falando sobre map e forEach, esse do reduce já assume que vc conhece array e tal
@cacadoresdeinvestimentos1031
como faz para pegar o resultado assim no meio do codigo do lado do console.log?
@DevSoutinho
@DevSoutinho Год назад
É um plugin que eu uso, o quokkajs
@cacadoresdeinvestimentos1031
@@DevSoutinho valeu vou usar , ele parece ser muito útil
@olucascardoso
@olucascardoso 4 года назад
Cara, que plugin é esse que te mostra a soma da operação ser ter que executar ?
@DevSoutinho
@DevSoutinho 4 года назад
É o Quokka :)
@olucascardoso
@olucascardoso 4 года назад
@@DevSoutinho vlw !
@pedropesserl
@pedropesserl 4 года назад
3:29 é o matheus canella falando "ana maria"? HAHAHAHAH
@DevSoutinho
@DevSoutinho 4 года назад
Ahahahahha lendária fala do loro José
@brenokfk
@brenokfk 4 года назад
Cadê a bolinha men para clicar no video rsrsrs
@DevSoutinho
@DevSoutinho 4 года назад
Eita, qual? 🤔
@brenokfk
@brenokfk 4 года назад
0:37 vc fala do link e não aparece rsrs, mano parabéns conteúdos com muito qualidade
@DevSoutinho
@DevSoutinho 4 года назад
Resolvido!!! E muito obrigado pelo feedback inspira muuiito a continuar os trabalhos por aqui
@hallanchristian3499
@hallanchristian3499 4 года назад
Top! Qual o nome dessa extensão de debug?
@DevSoutinho
@DevSoutinho 4 года назад
Opa é o Quokka js /o
@rafaelmrantunes
@rafaelmrantunes 3 года назад
Alguém poderia me explicar o que exatamente ocorre na linha 64? Especialmente, qual a função do "pokemonsPorTipo[pokemonAtual.type] || []" nesse código (9:42).
@linkopaladino
@linkopaladino 3 года назад
eu acho que o " || " é um tipo de condição, se for tipo igual ele recebe ele mesmo(como não pode ter tipo repetido não bota nada), se for tipo diferente ele cria um novo [ ] array! foi isso que eu entendi, pelo menos o || tem esse efeito no reduce! parece que alguns operadores tem efeitos diferentes no reduce!
@rafaelmrantunes
@rafaelmrantunes 3 года назад
@@linkopaladino imaginei que fosse isso, valeu
@linkopaladino
@linkopaladino 3 года назад
@@rafaelmrantunes eu acho mano, foi o que eu deduzi vou ler la no MDN depois!
@DevSoutinho
@DevSoutinho 3 года назад
Valeu por responder Paladino! tava doente esses dias to respondendo geral agora
@linkopaladino
@linkopaladino 3 года назад
@@DevSoutinho tá de boa, mas é isso mesmo?? Nossa esse seu vídeo é maravilhoso!! Se for possível me explica o efeito do operador spread dentro do reduce!! Isso acaba com qualquer júnior hehehe
@marciliolima9377
@marciliolima9377 2 года назад
alguma dica para pessaoas que não conseguem gerar a propria logica a não ser que vejam outros codigos?
@alves_a
@alves_a 4 года назад
E esse componente ai do vs code?
@DevSoutinho
@DevSoutinho 4 года назад
O plugin pra mostrar código? É o Quokka js
@matheusmartins7115
@matheusmartins7115 2 года назад
pica dms!
@natanalmeida5744
@natanalmeida5744 Год назад
que tema é esse?
@DevSoutinho
@DevSoutinho 11 месяцев назад
Light+ do VSCode
@Guhenf
@Guhenf 2 года назад
Lendo os comentarios eu to com medo, nao consegui aprender o reduce ainda kkkk, ja era tropa
@cacotobo
@cacotobo 4 года назад
Se eu posso fazer com pokémon, posso fazer com tudo... Kkk...
@DevSoutinho
@DevSoutinho 4 года назад
A teoria que me fez criar várias pokedex ao longo dos anos ahshshsh
@silmaraoliveira8600
@silmaraoliveira8600 Год назад
Sou iniciante e achei um pouco complicado.
@DevSoutinho
@DevSoutinho Год назад
Oi silmara tudo bom? O reduce é mais complicadinho mesmo! Recomendo tu olhar o vídeo de map e forEach, eles são mais fáceis pra quem tá começando. Eles ficando claros tenta aqui de novo /o
@henriqueS9653
@henriqueS9653 4 года назад
4:24 não queria estragar a piada, mas segundo a linguagem formal " Para qualquer alfabeto só há uma palavra de comprimento 0, a palavra vazia, o que é muitas vezes denotado por e, ε ou λ. ".O que tu disse não está incorreto, existe sim na lógica a palavra vazia de um alfabeto, e obviamente a palavra vazia não tem nenhum char.
@DevSoutinho
@DevSoutinho 4 года назад
Foi mais pela piada mesmo hahshaha, um lance de falar e sentir uma graça junto, mas valeu o conhecimento aqui :)
@gabrielsantana5153
@gabrielsantana5153 Год назад
Fui fazer sozinho usando TS antes de ver a resolução e cheguei nisso, pensei complexo demais: interface IPokemon { name: string, type: string } const pokemons: IPokemon[] = [ { name: "Pikachu", type: "Electric" }, { name: "Squirtle", type: "Water" }, { name: "Magikarp", type: "Water" }, { name: "Magikarp", type: "water" } ] const pokemonNames: string[] = [] const pokemonsCategorizedReduceCallback: (total: T, item: IPokemon) => T = (pokemonsCategorized, pokemon) => { const newTotal = pokemonsCategorized const itemTypeLowerCase = pokemon.type.toLowerCase() const itemNameLowerCase = pokemon.name.toLowerCase() if (pokemonNames.includes(itemNameLowerCase)) { return newTotal } pokemonNames.push(itemNameLowerCase) if (Object.keys(pokemonsCategorized).includes(itemTypeLowerCase)) { newTotal[itemTypeLowerCase].push(pokemon.name) return newTotal } newTotal[itemTypeLowerCase] = [pokemon.name] return newTotal } const pokemonsCategorized = pokemons.reduce(pokemonsCategorizedReduceCallback, {}) console.log("🚀 ~ file: poke.ts ~ line 45 ~ pokemonsCategorized", pokemonsCategorized)
@bitcoindomato
@bitcoindomato Год назад
cara, juro que tenho dificuldade em entender isso
@crisaort
@crisaort 3 года назад
Cara, me ajudou sem eu ter procurado O_o .. estou no meio de um projeto, com 3 API s e precisava montar uma tela e tava fazendo de um jeito totalmente diferente... Depois dessa vou direto refatorar kkk
Далее
Поём вместе с CLEXXD🥵 | WICSUR #shorts
01:00
COMO É VIVER NA CIDADE MAIS AO NORTE DO PLANETA!
10:00
Learn JavaScript Array Reduce In 10 Minutes
10:22
Просмотров 199 тыс.
iPhone, Galaxy или Pixel? 😎
0:16
Просмотров 1,3 млн
Новодельный ноутбук Pocket386
1:16:17