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

215
Visualizações
¿Cómo comparar uno o más campos mientras se itera en javascript?

¿Qué estoy haciendo?

Así que estoy creando una matriz de objetos a partir de los datos que se encuentran en una hoja. Los datos de la hoja se ven así:

 Name Lat Long test1 -3.4545 1.2568 test2 -5.4898 14.4589 test3 -3.4545 1.2568

¿Qué quiero hacer?

Debo agregar un campo a cada objeto que diga si pertenecen al campus o no, y para hacer eso, debo verificar si el objeto tiene la misma latitud y longitud que otro objeto. Ejemplo de lo que quiero hacer:

 [ { name: "test1", campus: "Yes" --> because the lat and long is the same in object test3, lat: -3.4545, long: 1.2568 }, { name: "test2", campus: "No", lat: -5.4898, long: 14.4589 }, { name: "test3", campus: "Yes" --> because the lat and long is the same object test1, lat: -3.4545, long: 1.2568 } ]

¿Qué he hecho hasta ahora?

Estoy iterando sobre la hoja y creando los objetos:

 let worksheets1 = {} for (const sheetName1 of workbook.SheetNames) { worksheets1[sheetName1] = XLSX.utils.sheet_to_json(workbook.Sheets['Sheet1'], { header: 1 }) } let data = worksheets1['Sheet1'] for (const rows of data) { if(rows[10] == "New"){ aux2.push({ name:rows[10], campus: "", //I need this lat: rows[35], long: rows[36], code: rows[7] !== undefined ? rows[7] : "No info", info:rows[17] !== undefined ? { data: rows[17].replace(/,\s/g, ",").split(","), source: "Sheet" } : "No info" }) } } aux2.shift()

En resumen

Me pregunto si hay una manera de comparar sobre la marcha si dos o más objetos tienen la misma latitud y longitud, y si la tienen, ya lo agrego al campus de campo "Sí" o "No".

Gracias.

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Ordene su matriz por las propiedades de lat / long de los objetos contenidos. Todos los objetos que tengan los mismos valores serán elementos de matriz adyacentes para que pueda asignar la bandera del campus en una sola pasada.

Código de muestra:

 let orig = [ { name: "test1", lat: -3.4545, long: 1.2568 }, { name: "test2", lat: -5.4898, long: 14.4589 }, { name: "test3", lat: -3.4545, long: 1.2568 } ]; orig .sort ( (a,b) => { let c = (a.lat < b.lat) ? -1 : ((a.lat > b.lat) ? 1 : ((a.long < b.long) ? -1 : ((a.long > b.long) ? 1 : 0 )) ) ; return c; }); for (let i=1; i < orig.length; i++) { orig[i-1].campus = ((orig[i-1].lat === orig[i].lat) && (orig[i-1].long === orig[i].long)) ? 'Yes' : 'No'; } if (orig.length > 1) { orig[orig.length-1].campus = ((orig[orig.length-2].lat === orig[orig.length-1].lat) && (orig[orig.length-2].long === orig[orig.length-1].long)) ? 'Yes' : 'No'; } orig;

La función de comparación personalizada se puede mejorar, por supuesto, para probar realmente si las coordenadas están dentro de algún parámetro de campus preespecificado. El valor de retorno específico si dos objetos difieren en ese aspecto no es importante siempre que devuelva 0 para todos los pares (y solo para esos pares) que se consideren 'iguales'.

about 4 years ago · Santiago Trujillo 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