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

415
Visualizações
Cómo convertir un número en una matriz 2d a la misma cantidad de caracteres
const twoD = [ 'rnbqkbnr', 'pppppppp', '8', '8', '4P3', '8', 'PPPP1PPP', 'RNBQKBNR' ]

Tengo una matriz 2d que se ve así. ¿Cómo puedo reemplazar cada número con la misma cantidad de caracteres?

Rendimiento esperado:

 [ 'rnbqkbnr', 'pppppppp', 'oooooooo', 'oooooooo', 'ooooPooo', 'oooooooo', 'PPPPoPPP', 'RNBQKBNR' ]

Intenté este código, sin embargo, recibí este error:

TypeError: Cannot assign to read only property '0' of string 'rnbqkbnr'

 twoD.map((row, i) => { row.split("").map((col, j) => { if (isNaN(twoD[i][j])) { twoD[i][j] = "o".repeat(twoD[i][j]); } }); });
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

En realidad, es una matriz 1D hasta que divide sus elementos en símbolos.

 const data = ['rnbqkbnr', 'pppppppp', '8', '8', '4P3', '8', 'PPPP1PPP', 'RNBQKBNR']; const result = data.map(row => row.split('') .map(char => isNaN(char) ? char : 'o'.repeat(char)) .join('')); console.log(result);
 .as-console-wrapper{min-height: 100%!important; top: 0}

about 4 years ago · Juan Pablo Isaza Relatório

0

Si el carácter que desea usar para reemplazar sus números es fijo, entonces podría usar Array.map para hacer algo como esto:

 const inputArr = [ 'rnbqkbnr', 'pppppppp', '8', '8', '4P3', '8', 'PPPP1PPP', 'RNBQKBNR' ]; // given example input const replChar = "o"; // character to put in place of numbers let outputArr = inputArr.map((inputStr) => { // passing empty string as the delimiter results in an array of characters. let charArray = inputStr.split(""); let newChars = charArray.map((character) => { // loop over every character and return a string const nums = "1234567890"; if(nums.includes(character)) { // replace numbers with n letters. let number = parseInt(character); return replChar.repeat(number); } return character; }); return newChars.join(""); // merge into string });

También puedes hacer esto con un bucle for:

 const inputArr = [ 'rnbqkbnr', 'pppppppp', '8', '8', '4P3', '8', 'PPPP1PPP', 'RNBQKBNR' ]; // given example input const replChar = "o"; // character to put in place of numbers let outputArr = []; for(var i = 0; i < inputArr.length; i++) { let inputStr = inputArr[i]; // passing empty string as the delimiter results in an array of characters. let charArray = inputStr.split(""); let newChars = ""; for(var j = 0; j < charArray.length; j++) { let character = charArray[j]; // loop over every character and return a string const nums = "1234567890"; if(nums.includes(character)) { // replace numbers with n letters. let number = parseInt(character); newChars += replChar.repeat(number); } else { newChars += character; } } outputArr.push(newChars) }

También quiero mencionar que cuando se trata de escalar estas soluciones, puede haber posibles mejoras. Si el rendimiento es importante para usted en este problema, puede valer la pena mirar algunas de las siguientes publicaciones y, potencialmente, hacer sus propios puntos de referencia:

  • ¿La forma más eficiente de concatenar cadenas en JavaScript?
  • ¿Cómo puedo procesar cada letra de texto usando Javascript?

Hacia el error que recibió, parece que está tratando de indexar en una cadena que devolvería el carácter desde esa posición en modo de solo lectura porque las cadenas de Javascript son inmutables . En su lugar, debe crear nuevas cadenas basadas en sus cadenas originales.
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