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

200
Visualizações
Cuente el número de letras repetidas de la matriz de cada cadena

Tengo una matriz de cadenas con letras duplicadas. Ahora quiero contar la cantidad de letras duplicadas de cada cadena y necesito crear un objeto separado para cada cadena. La matriz dada:

 let ArrOfStrs = ["aaabbbccc", "dddeeefff", "ggghhhiii", "jkl"]

lo que he probado:

 var obj={}
var repeats=[];
for(let i=0; i< ArrOfStrs.length; i++) {
 for(let x = 0; x < ArrOfStrs[i].length; x++) {
 var l = ArrOfStrs[i].charAt(x);
 obj[l] = (!obj.hasOwnProperty(l) ? 1 : obj[l] + 1);
 }
}
repeats.push(obj);
console.log(repeats); 

Salida real:

 { a: 3, b: 3, c: 3, d: 3, e: 3, f: 3, g: 3, h: 3, i: 3, j: 1, k: 1, l: 1 } 

Rendimiento esperado :

 [{a:3,b:3,c:3}, {d:3,e:3,f:3},{g:3,h:3,i:3},{j:1,k:1,l:1}] 

¿Alguien podría ayudar con un mejor enfoque para lograr esto? Gracias de antemano.

almost 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

  • Array.prototype.map para crear una nueva matriz a partir de una existente
  • Array.prototype.netuce para convertir una matriz a un tipo diferente (Objeto)
  • Difundir sintaxis ... para convertir String a Array

 const arrOfStrs = ["aaabbbccc", "dddeeefff", "ggghhhiii", "jkl"];

const counted = arrOfStrs.map(str => [...str].netuce((o, v) => {
 o[v] ??= 0 // set default count to 0 (if not exists)
 o[v]++ // increment count
 return o;
}, {}));

console.log(counted);

Lectura adicional:

  • Operador coalescente nulo ??

Variante:

 const arrOfStrs = ["aaabbbccc", "dddeeefff", "ggghhhiii", "jkl"];
const counted = arrOfStrs.map(s => [...s].netuce((o, v) => (o[v] ??= 0, o[v]++, o), {}));

console.log(counted);

almost 4 years ago · Santiago Trujillo Relatório

0

2 errores:

  1. Está manteniendo un objeto común obj y realizando cambios en él. De hecho, obj será diferente para cada cadena.
  2. No está insertando obj en su matriz de resultados para cada iteración. Lo está haciendo al final, por lo tanto, solo tiene un elemento en su matriz.

Haciendo cambios mínimos, su código puede arreglarse:

 let ArrOfStrs = ["aaabbbccc", "dddeeefff", "ggghhhiii", "jkl"]

var repeats=[];
for(let i=0; i< ArrOfStrs.length; i++) {
 var obj={}
 for(let x = 0; x < ArrOfStrs[i].length; x++) {
 var l = ArrOfStrs[i].charAt(x);
 obj[l] = (!obj.hasOwnProperty(l) ? 1 : obj[l] + 1);
 }
 repeats.push(obj);
}

console.log(repeats);

almost 4 years ago · Santiago Trujillo 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