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

231
Vistas
TypeError no detectado: no se pueden leer las propiedades de nulo (leyendo 'segmento') ------ TypeError no detectado: no se pueden leer las propiedades de undefined (leyendo 'filtro')

Realmente aprecio algo de ayuda con este código. Estaba funcionando antes en las hojas de Google, pero de repente comenzó a aparecer con mensajes de error.

El código completo está abajo:

 function getDataForSearch() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const ws = ss.getSheetByName("TEST FORMULAR"); return ws.getRange(6, 1, ws.getLastRow()-1, 6).getValues(); }
 function setDataForSearch(){ google.script.run.withSuccessHandler(function(dataReturned){ data = dataReturned.slice(); }).getDataForSearch(); }
 function search(){ var searchInput = document.getElementById("searchInput").value.toString().toLowerCase().trim(); var searchWords = searchInput.split(/\s+/); var searchColumns = [0]; var resultsArray = searchInput == "" ? [] : data.filter(function(r){ return searchWords.every(function(word){ return searchColumns.some(function(colIndex){ return r[colIndex].toString().toLowerCase().indexOf(word) != -1; }); }); }); var searchResultsBox = document.getElementById("searchResults"); var templateBox = document.getElementById("rowTemplate"); var template = templateBox.content; searchResultsBox.innerHTML = ""; resultsArray.forEach(function(r){ var tr = template.cloneNode(true); var typeInitiativeColumn = tr.querySelector(".type-initiative"); var pepRefColumn = tr.querySelector(".pep-ref"); var projectNameColumn = tr.querySelector(".project-name"); pepRefColumn.textContent = r[0]; typeInitiativeColumn.textContent = r[1]; projectNameColumn.textContent = r[2]; searchResultsBox.appendChild(tr); }); }
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Parece que data no están undefined o dataReturned devuelve null . Puedes hacer una solución, como

 var data = []; // define globally google.script.run.withSuccessHandler(function (dataReturned) { if (dataReturned.length) { // check if dataReturned is not null in setDataForSearch function data = dataReturned.slice(); } }).getDataForSearch(); // then check if data is defined & not empty in search function var resultsArray = !data.length || searchInput == "" ? [] : data.filter(function (r) { });

Editar Reemplazar

 !data.length || searchInput == "" ?

con

 data === null || searchInput == "" ?
about 4 years ago · Juan Pablo Isaza Denunciar

0

Cree una condición if como se muestra a continuación

 google.script.run.withSuccessHandler(function(dataReturned){ if(dataReturned && typeof dataReturned !== 'undefined'){ data = dataReturned.slice(); }else { data = "null or undefined" //or do whatever you want in else } }).getDataForSearch();

Comprobará si dataReturned no es nulo o indefinido. Si es nulo/indefinido/falso, no ejecutará lo proporcionado en la condición if.

¿Por qué ocurrió el error?
Está tratando de obtener algo de un nulo/indefinido. Es algo como null.slice() que hiciste

about 4 years ago · Juan Pablo Isaza Denunciar

0

También puedes probar algo como:

 google.script.run.withSuccessHandler(function(dataReturned){ data = dataReturned?.slice(); }).getDataForSearch();
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