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

141
Vistas
Quiero combinar objetos de JavaScript con el mismo nombre de variable

En este momento, si corro for loop

 {“FirstName” : “Kim”} {“LastName” : “hana”} {“Phone” : “010-1234-5648”} {“Email” : “abc@gmail.com”}

Sale así. Pero el resultado que quiero es

 {“FirstName” : “Kim”, “LastName” : “hana”, “Phone” : “010-1234-5648”, “Email” : “abc@gmail.com”}

Quiero que salga así. ¿Qué tengo que hacer?

Este es mi código que acabo de escribir.

 function testRun(){ var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var LastRow = ss.getLastRow(); var LastCol = ss.getLastColumn(); var arr = []; for(var i = 1; i<=LastCol; i ++){ var fieldName = ss.getRange(1,i).getValue(); arr.push(fieldName); } //arr = [FirstName, LastName, Phone, Email] for(var i =2;i<=LastRow;i++){ for(var j=1;j<=LastCol;j++){ var payload = Utilities.jsonStringify({ [arr[j-1]] : ss.getRange(i,j).getValue()} ); } } }
about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Puntos de modificación:

  • En su script de visualización, parece que no se utiliza la payload .
  • Cuando se usa getValue() en un ciclo, el costo del proceso se vuelve alto. Árbitro

Cuando estos puntos se reflejan en un guión de muestra para lograr su objetivo, se convierte en lo siguiente.

Guión de muestra:

Cuando se modifica su secuencia de comandos, ¿qué tal la siguiente modificación?

 function testRun() { var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var LastRow = ss.getLastRow(); var LastCol = ss.getLastColumn(); var [header, ...values] = ss.getRange(1, 1, LastRow, LastCol).getValues(); var arr = []; for (var i = 0; i < LastRow - 1; i++) { var temp = {}; for (var j = 0; j < LastCol; j++) { temp[header[j]] = values[i][j]; } arr.push(temp); } console.log(JSON.stringify(arr)) }
  • Cuando se ejecuta este script, arr es [{"FirstName":"Kim","LastName":"hana","Phone":"010-1234-5648","Email":"abc@gmail.com"}] .

  • Como otro enfoque, pensé que también podría usar el siguiente script de muestra.

     var ss = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var [header, ...values] = ss.getRange(1, 1, ss.getLastRow(), ss.getLastColumn()).getValues(); var arr = values.map(r => header.reduce((o, h, j) => (o[h] = r[j], o), {})); console.log(JSON.stringify(arr))
about 4 years ago · Santiago Trujillo Denunciar

0

Su código crea objetos separados en cada iteración. Cree un objeto vacío para cada Persona, luego agregue las propiedades que necesita.

Esto debería verse algo como esto:

 for(var i=2; i<=LastRow; i++){ var payload = {} for(var j=1; j<=LastCol; j++){ payload[arr[j-1]] = ss.getRange(i,j).getValue()}; } }
about 4 years ago · Santiago Trujillo 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