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

226
Views
Eliminar palabras específicas de una cadena de manera eficiente

Estoy tratando de eliminar un par de palabras coincidentes de una serie de cadenas. A continuación se muestra la matriz que contiene la cadena

 let string = ["select from table order by asc limit 10 no binding"]

Estoy tratando de deshacerme de cualquiera que tenga orden por y límite y su valor y preservando el resto. He intentado lo siguiente, pero ninguno de ellos es elegante/eficiente.

 let splitString = string.split(' '); let str1 = 'limit'; let str2 = 'order'; let str3 = 'by'; let str4 = 'asc'; let str5 = '10'; splitString = splitString.filter(x => x !== str1); splitString = splitString.filter(x => x !== str2); splitString = splitString.filter(x => x !== str3); splitString = splitString.filter(x => x !== str4); splitString = splitString.filter(x => x !== str5);

¿Hay una forma adecuada de deshacerse de esas palabras de la cadena? AIT

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Cree una matriz o un conjunto de las cadenas que desea eliminar, luego filtre según si la palabra que se está repitiendo está en el conjunto.

 const input = ["select from table order by asc limit 10 no binding"] const wordsToExclude = new Set(['limit', 'order', 'by', 'asc', '10']); const words = input[0].split(' ').filter(word => !wordsToExclude.has(word)); console.log(words);

Si en realidad no desea eliminar todas esas palabras, sino solo esa secuencia , use una expresión regular para hacer coincidir el limit hasta que encuentre números.

 const input = ["select from table order by asc limit 10 no binding"]; const result = input[0].replace(/order\b.*?\d+ /, ''); console.log(result);

Si pueden aparecer números adicionales entre la secuencia, haga coincidir el limit \d+ al final, en lugar de solo \d+

 const input = ["select from table order by 1 asc limit 33 no binding"]; const result = input[0].replace(/order\b.*?limit \d+ /, ''); console.log(result);

about 4 years ago · Juan Pablo Isaza Report

0

Usando filter e includes

 const [string] = ["select from table order by asc limit 10 no binding"]; const exclude = ["limit", "order", "by", "asc", "10"]; const res = string.split(" ").filter(wd => !exclude.includes(wd)); console.log(res)

Alternativamente usando replaceAll

 const [string] = ["select from table order by asc limit 10 no binding"]; const exclude = ['limit', 'order', 'by', 'asc', '10']; const res = exclude.reduce((str, word) => str.replaceAll(word, ''), string).replaceAll(/\s+/g, ' '); console.log(res)

about 4 years ago · Juan Pablo Isaza 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!