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

111
Visualizações
Cuente la ocurrencia de cada alfabeto de una cadena en Javascript

He visto preguntas similares como esta antes, como contar caracteres en una cadena determinada. Sin embargo, cuando se trata de comparar una cadena dada con las letras del alfabeto y devolver un objeto con ocurrencias como:

 const letters = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"] const sampleString = "a bee"; const results = { a: 1, b: 1, c: 0, d: 0, e: 2, f: 0, ... }
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Podemos usar Array.reduce() , para contar letras en sampleString.

Comenzamos creando un letterMap para especificar todas las letras válidas para contar.

En el ciclo de reducción, solo incrementamos las letras que están presentes en el mapa de letras, usando la expresión (c in acc).

 const letters = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"] const sampleString = "a bee"; const letterMap = letters.reduce((acc, c) => { acc[c] = 0; return acc; }, {}); const result = [...sampleString].reduce((acc, c) => { if (c in acc) acc[c]++; return acc; }, letterMap); console.log('Result:', result)
 .as-console-wrapper { max-height: 100% !important; top: 0; }

Aquí hay otra forma, usando solo un bucle, nuevamente usando Array.reduce() , esto supone que no deseamos contar los espacios en blanco:

 const letters = ["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"] const sampleString = "a bee"; const result = [...letters, ...sampleString].reduce((acc, c) => { if (c in acc) { acc[c]++; } else if (c.trim()) { acc[c] = 0; } return acc; }, {}); console.log('Result:', result)
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Relatório

0

Me gusta usar Object.fromEntries para esto:

 const sampleString = "a bee"; const result = Object.fromEntries(Array.from("abcdefghijklmnopqrstuvwxyz", ch => [ch, 0])); for (let ch of sampleString) if (ch in result) result[ch]++; console.log(result);

about 4 years ago · Juan Pablo Isaza Relatório

0

Usar Array.reduce y String.match puede ser una idea. Entonces, para cada letra de letters , use la match (longitud) para determinar la frecuencia de la letra en la muestra dada.

 const letters = `abcdefghijklmnopqrstuvwxyz`.split(``); const freq = (chr, sample) => (sample.match(RegExp(chr, `g`)) || []).length; const result = letters.reduce( (acc, chr) => ({...acc, [chr]: freq(chr, acc.sample)}), {sample: "a bee"}); console.log(result);

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