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
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 answers
Answer question

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 Report

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 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!