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

161
Visualizações
Google Sheets Script: recorra la matriz, busque elementos de la matriz con solo texto y texto parcial y reemplace el elemento completo

Tengo un código que funciona a medias, lo último que no puedo entender es cómo encontrar un elemento de matriz que contenga un número (por ejemplo, 123) y algo de texto (m/s) y reemplazar todo este elemento con una matriz completamente en blanco elemento: [] . Sin número y sin m/s.

No estoy familiarizado con la mayor parte de la terminología y soy un completo novato en esto. Esto es lo que tengo hasta ahora:

 function condForm() { var sh = ss.getSheetByName('Sheet1'); var range = sh.getRange("D4:D20"); //*** for the sake of brevity setting to 20 instead of 154 var values = range.getValues(); var row = []; var cols = values[0].length; for (var i = 0, l = values.length; i < l; i++) { row = values[i]; for (var j = 0; j < cols; j++) { if (row[j] === 'TTK') { row[j] = ''; } if(typeof row[j] != "string") { continue; } // line to allow indexOf to work if (row[j].indexOf('m/s') > -1) { var newValue = row[j].replace('m/s', '') } //attempting to use indexOf to search for partial match to m/s, does not work but does not return error } } Logger.log(values); }

Sin código, el registrador emite [[400.0], [600.0], [600.0], [600.0], [], [1283 m/s], [TTK], [440.0], [661.0], [771.0], [771.0], [], [960m/s], [TTK], [381.0], [667.0], [667.0]]

Y con el código anterior, la salida se convierte en [[400.0], [600.0], [600.0], [600.0], [], [1283m/s], [], [440.0], [661.0], [771.0], [771.0], [], [960m/s], [], [381.0], [667.0], [667.0]] = mismo número de elementos de matriz = gran éxito

Intenté usar indexOf para buscar cualquier elemento de matriz que contenga m/s. No funcionó, pero tampoco devolvió un error. ¿Que esta haciendo? ¿Estoy en la línea correcta?

Me gustaría encontrar una forma de convertir [1283m/s] y [960m/s] en espacios en blanco: [] .

Gracias por leer.

Mi código se obtuvo de Max Makhrov: https://stackoverflow.com/a/47575871/1341041

y de Andrés Duarte : https://stackoverflow.com/a/60226151/1341041

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

0

Por lo que puedo decir, estás cambiando la row de la matriz. Pero nunca cambiará los values de la matriz.

Probablemente necesites algo como esto en el medio:

 ... if (row[j] === 'TTK') { values[i][j] = ''; } if (typeof row[j] != "string") { continue; } if (row[j].indexOf('m/s') > -1) { values[i][j] = row[j].replace('m/s', '') } ...

Pero en realidad, para su propósito, propongo usar la herramienta nativa TextFinder :

 function condForm() { const sheet = ss.getSheetByName('Sheet1'); const range = sheet.getRange('D4:D20'); // range.createTextFinder('m/s').replaceAllWith(''); range.createTextFinder('.*m/s.*').useRegularExpression(true).replaceAllWith(''); range.createTextFinder('^TTK$').useRegularExpression(true).replaceAllWith(''); }

https://developers.google.com/apps-script/reference/spreadsheet/text-finder

Por si acaso, si realmente te gustan los bucles anidados, también se puede hacer un poco más limpio de esta manera:

 var values = [[400], [600], [600], [600], [], ['1283 m/s'], ['TTK'], [440], [661], [771], [771], [], ['960m/s'], ['TTK'], [381], [667], [667]]; for (row in values) { for (col in values[row]) { if (values[row][col] == 'TTK') values[row][col] = ''; // values[row][col] = values[row][col].toString().replace(/\s*m\/s/g,''); values[row][col] = values[row][col].toString().replace(/.*m\/s.*/,''); } } console.log(values);

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