Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

157
Views
Cómo llenar String/Array con recursividad de caracteres

tengo un pequeño problema en JS-Code y agradecería su ayuda Así que tengo una matriz como esta:

 let topMap= [ '................**********........................', '...............*..........*.......................', '..........*****............*........*.............', '.........*.................*.......*.*....*****...', ]

Ahora puedo llenar una línea en este mapa con el carácter '*'. Dividí esta matriz en una cadena, establecí un carácter en la posición y transfiero de nuevo a la matriz.

 const getCharFromArrayPosition = (x, y) => topMap[x][y] const replaceChar = (x,y) => { topMap= topMap.map(x => x.split('')) topMap[x][y] = char topMap = topMap.map(x => x.join('')) } const floodFill = (x,y) => { if(getCharFromArrayPosition(x,y) !== char){ replaceChar(x,y) floodFill(x,y+1) } return topMap }

Entonces, si console.log(floodFill(0,0) obtengo esto

 '**************************........................', '...............*..........*.......................', '..........*****............*........*.............', '.........*.................*.......*.*....*****...',

Estoy llenando la posición y y está bien pero, ¿cómo puedo llenar la posición x también con recursividad? O en otras palabras, ¿cómo pasar de un carácter a otro? gracias

about 4 years ago · Santiago Gelvez
1 answers
Answer question

0

En este momento, su recursividad solo va en una sola dirección: hacia la derecha.

 floodFill(x, y + 1)

Recurse en todas las direcciones en su lugar. También deberá realizar un seguimiento de los índices visitados para evitar una repetición interminable. También puede ser más fácil trabajar con una matriz de matrices que con una matriz de cadenas.

 const topMap = [ '................**********........................', '...............*..........*.......................', '..........*****............*........*.............', '.........*.................*.......*.*....*****...', ].map(str => [...str]); const visited = new Set(); const floodFill = (y, x) => { const key = y + '_' + x; if (visited.has(key) || topMap[y]?.[x] === undefined || topMap[y][x] !== '.') { return; } visited.add(key); topMap[y][x] = '*'; floodFill(y, x + 1); floodFill(y, x - 1); floodFill(y + 1, x); floodFill(y - 1, x); } floodFill(0, 0); console.log(topMap.map(subarr => subarr.join('')));

about 4 years ago · Santiago Gelvez Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!