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

183
Visualizações
javascript reemplaza las letras de la matriz 1 con el número de la matriz 2 y calcula la suma de estos números

tengo dos matrices

matriz número 1:

 let search = ['ا', 'ب', 'ج', 'د', 'ه','و', 'ز', 'ح', 'ط', 'ي','ك', 'ل', 'م', 'ن', 'س','ع', 'ف', 'ص', 'ق', 'ر','ش', 'ت', 'ث', 'خ', 'ذ','ظ', 'ض', 'غ'];

matriz número 2:

 let replace = ['1', '2', '3', '4', '5','6', '7', '8', '9', '10','20', '30', '40', '50', '60','70', '80', '90', '100', '200','300', '400', '500', '600', '700','800', '900', '1000'];

y esta es una entrada:

 let word = "محمد";

Quiero en javascript buscar las letras de la word variable y reemplazarlas con el equivalente del número en la matriz de replace . La matriz de reemplazo y la matriz de búsqueda tienen la misma cantidad de letras y números.

La salida será:

 م 40 ح 8 م 40 د 4 total = 92 

 let word = "محمد"; let search = ['ا', 'ب', 'ج', 'د', 'ه', 'و', 'ز', 'ح', 'ط', 'ي', 'ك', 'ل', 'م', 'ن', 'س', 'ع', 'ف', 'ص', 'ق', 'ر', 'ش', 'ت', 'ث', 'خ', 'ذ', 'ظ', 'ض', 'غ']; let replace = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '20', '30', '40', '50', '60', '70', '80', '90', '100', '200', '300', '400', '500', '600', '700', '800', '900', '1000']; if (word === "") { document.write('the field is empty'); } else { w = word.split("").filter(function(ele) { return ele.replace(search, replace); }).map(function(ele) { return ele + ele; }); } console.log(w);

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Suponiendo que quiso decir que el resultado esperado era 92, puede hacerlo dividiendo la entrada, luego encontrando el índice del elemento en find y agregando el resultado usando reduce buscando el valor de replace

 let search = ['ا', 'ب', 'ج', 'د', 'ه','و', 'ز', 'ح', 'ط', 'ي','ك', 'ل', 'م', 'ن', 'س','ع', 'ف', 'ص', 'ق', 'ر','ش', 'ت', 'ث', 'خ', 'ذ','ظ', 'ض', 'غ']; let replace = ['1', '2', '3', '4', '5','6', '7', '8', '9', '10','20', '30', '40', '50', '60','70', '80', '90', '100', '200','300', '400', '500', '600', '700','800', '900', '1000']; let word = "محمد"; let result = word.split("") .map(x => search.indexOf(x)) .reduce( (acc,i) => acc + parseInt(replace[i],10),0); console.log(result);

Podría mejorar esto almacenando números enteros en su matriz de replace , lo que negaría la necesidad de parseInt

about 4 years ago · Juan Pablo Isaza Relatório

0

Sugeriría crear un mapa para las dos matrices:

 let word = "محمد"; let search = ['ا', 'ب', 'ج', 'د', 'ه', 'و', 'ز', 'ح', 'ط', 'ي', 'ك', 'ل', 'م', 'ن', 'س', 'ع', 'ف', 'ص', 'ق', 'ر', 'ش', 'ت', 'ث', 'خ', 'ذ', 'ظ', 'ض', 'غ']; let replace = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '20', '30', '40', '50', '60', '70', '80', '90', '100', '200', '300', '400', '500', '600', '700', '800', '900', '1000']; let map = Object.fromEntries(search.map((letter, i) => [letter, replace[i]])); let w = Array.from(word, letter => map[letter]).filter(Boolean); console.log(w); // If you want to have a concatenated string: console.log(w.join(",")); // Or a sum: console.log(w.reduce((a, b) => a + +b, 0));

Nota: si su intención es sumar o hacer otros cálculos numéricos, sugeriría que la matriz de replace sea una matriz de números , no de cadenas .

about 4 years ago · Juan Pablo Isaza Relatório

0

Lógica

  • Dividir la palabra en letras
  • Encuentra el índice de cada palabra de search .
  • Encuentre el valor del índice anterior de la matriz de replace .
  • Añadir esto en un bucle

violín de trabajo

 let word = "محمد"; let search = ['ا', 'ب', 'ج', 'د', 'ه', 'و', 'ز', 'ح', 'ط', 'ي', 'ك', 'ل', 'م', 'ن', 'س', 'ع', 'ف', 'ص', 'ق', 'ر', 'ش', 'ت', 'ث', 'خ', 'ذ', 'ظ', 'ض', 'غ']; let replace = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '20', '30', '40', '50', '60', '70', '80', '90', '100', '200', '300', '400', '500', '600', '700', '800', '900', '1000']; let sum = 0; word.split("").forEach(letter => { const index = replace[search.indexOf(letter)]; console.log(`${index} ${letter}`) sum += +index; }); console.log(`total = ${sum}`)

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