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

227
Visualizações
Igualdad de cadenas en Google Apps Script

Estoy tratando de comparar un nombre recuperado de un objeto JSON, con un nombre tal como existe en una hoja de Google. Por mucho que lo intente, no puedo obtener una comparación que arroje un resultado positivo. He intentado:

IndexOf

localeCompare

==

===

Probé key===value String(key)===String(value) y String(key).valueof()=String(value).valueof . También intenté llamar a trim() en todo para asegurarme de que no haya espacios en blanco iniciales/posteriores (no los hay, como se confirmó con una comparación de length() .

Como puede ver en la captura de pantalla, los valores de key y value son exactamente iguales. Cualquier sugerencia será recibida con gratitud. ¡Esto ha retrasado mi proyecto durante días!

Captura de pantalla aquí

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

0

Descripción

Esto no es una solución, pero podría ayudar a encontrar el problema. Quizá los personajes de uno u otro no sean lo que piensas. Visualmente se comparan, pero qué pasa si uno tiene una pestaña en lugar de un espacio. Intente esto, enumere los códigos de carácter para cada uno y vea si algún carácter tiene un valor diferente.

He agregado otra opción que elimina el bucle for gracias a @TheMaster

Guión (Opción 1)

 function test() { try { let text = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test").getRange("A1").getValue(); console.log(text); let code = []; for( let i=0; i<text.length; i++ ) { code.push(text.charCodeAt(i)) } console.log(code.join()); } catch(err) { console.log(err); } }

Guión (Opción 2)

 function test() { try { let text = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Test").getRange("A1").getValue(); console.log(text); let code = []; [...text].forEach( char => code.push(char.charCodeAt(0)) ); console.log(code.join()); } catch(err) { console.log(err); } }

Registro de ejecución

 7:57:53 AM Notice Execution started 7:57:56 AM Info Archie White 7:57:56 AM Info 65,114,99,104,105,101,32,87,104,105,116,101 7:57:54 AM Notice Execution completed
about 4 years ago · Juan Pablo Isaza Relatório

0

Comparar

 function compare() { const json = '{"values":[["good","bad","ugly"]]}'; const obj = JSON.parse(json); const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName("Sheet0"); const [hA,...vs] = sh.getDataRange().getDisplayValues(); let matches = []; vs.forEach((r,i) => { r.forEach((c,j) => { let idx = obj.values[0].indexOf(c); if(~idx) { matches.push({row:i+1,col:j+1,index: idx}); } }) }) Logger.log(JSON.stringify(matches)) } Execution log 9:31:50 AM Notice Execution started 9:31:52 AM Info [{"row":1,"col":1,"index":0},{"row":2,"col":1,"index":1},{"row":3,"col":1,"index":2}] 9:31:51 AM Notice Execution completed

Hoja1:

COL1
bueno
malo
feo
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