Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

204
Vistas
TypeScript: ¿Cómo reemplazar un número particular en una cadena (una combinación de valores numéricos y no numéricos) y luego actualizar su valor?

Hice una pregunta similar aquí TypeScript: ¿Cómo reemplazar un número particular en una cadena y luego actualizar su valor?

Realmente aprecio las respuestas allí. Respondió a mis preguntas.

Me encontré con un nuevo problema. Pensé que era más útil plantear una nueva pregunta al referirse a la pregunta anterior.

Tengo una columna que está llena de cadenas de 10 dígitos.

A veces, los 10 dígitos completos solo contienen valores numéricos (por ejemplo, 3345678901 ), pero a veces se incluye un guión (por ejemplo 3345678--- )

Me gustaría poder:

  1. Ingrese un número de índice X
  2. Ubique el número correspondiente en la cadena
  3. Sume o reste un número A particular a/de ese número para actualizar la cadena
  4. Actualizar la cadena

Ejemplo 1 (todo numérico): 3345678901

  • Número de índice de entrada "4"
  • el numero correspondiente es 6
  • Aumenta ese número en +2 a 8
  • Actualice la cadena a 3345878901

Ejemplo 2 (numérico y no numérico): 3345678---

  • Número de índice de entrada "4"
  • el numero correspondiente es 6
  • Aumenta ese número en +2 a 8
  • Actualice la cadena a 3345878---

Ejemplo 3 (numérico y no numérico): 3345678---

  • Número de índice de entrada "7"
  • El valor correspondiente es -
  • Aumente (o mejor dicho, actualice) ese número en +2 a 2
  • Actualice la cadena a 33458782--

Para el ejemplo 1, sé que podría hacer lo siguiente (como ha señalado un colaborador de la publicación OG):

 const givenStr = "3345678901"; let givenStrArray = givenStr.split('').map(Number); const inputIndex = 4; const increaseAmount = 2; givenStrNumber += increaseAmount console.log(givenStrNumber);

Pero, ¿cómo hago para los Ejemplos 2 y 3? ¿Ya que hay una cadena '-' involucrada? En este caso, map(Number) conduciría a valores nulos que romperían el código.

¡Cualquier ayuda sería muy apreciada!

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Compruebe NaN . Este es un pequeño fragmento que le daría una pista:

 // ... // ... const increment = 2; let givenStrArray = givenStr .split('') .map((digiit) => isNaN(digit) ? increment : Number(digit + increment); // ... // ...
about 4 years ago · Juan Pablo Isaza Denunciar

0

Esto debería funcionar

 let str = '3345678---' let NumericStrArray = str.split('').map(x => Number.isNaN(Number(x)) ? x: Number(x)) let ipIndex = 7 let incAmount = 2 let val = NumericStrArray[ipIndex] NumericStrArray[ipIndex] = typeof val === 'string' ? incAmount : val + incAmount let result = NumericStrArray.join('')
about 4 years ago · Juan Pablo Isaza Denunciar

0

Aquí hay un pequeño fragmento simple. Separe la picadura, mapee cada elemento, cuando encontremos el índice que necesitamos actualizar, lo actualizamos y lo devolvemos, luego los unimos todos nuevamente.

Aquí se han utilizado operadores ternarios condicionales múltiples, puede obtener más información sobre cómo funcionan aquí: Operador condicional (ternario)

 const givenStr = "334567----", inputIndex = 6, increaseAmount = 2 let givenNumber = givenStr .split('') .map((v,i) => i === inputIndex ? isNaN(v) ? increaseAmount : +v + increaseAmount : v) .join('') console.log(givenNumber);

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda