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

125
Visualizações
Verifique la unicidad con valores de propiedad de objetos anidados en una matriz de objetos

Estoy devolviendo nulo si una matriz de objetos tiene los mismos valores de propiedad y está bien con las propiedades directas del objeto. Estoy intentando con valores de propiedades de objetos anidados en la misma matriz, pero está fallando. A continuación se muestra el código para el mismo.

 const getNullOrUniquePropertyValue = (arrToCheck, keyName, includeFullObject = null) => { const uniqueValues = [...new Set(arrToCheck.map((v) => v[keyName]))]; if (uniqueValues.size !== 1) { return null; } return includeFullObject ? arrToCheck[0].includeFullObject : arrToCheck[0].keyName; };

Y estoy llamando a la función anterior como se muestra a continuación

 getNullOrUniquePropertyValue( spaces, 'designHubProjectSpaceTypeId' )

Obtengo resultados nulos para la función anterior porque designHubProjectSpaceTypeId no es el mismo en la matriz.

Estoy pasando la propiedad de objetos anidados como se muestra a continuación, y está devolviendo un valor nulo para la condición a continuación, incluso si la matriz tiene los mismos valores.

 getNullOrUniquePropertyValue(spaces, 'spaceGeometry.ceilingHeight')

y la estructura espacial como esta como se muestra a continuación

 "spaces": [ { "spaceGeometry": { "ceilingHeight": 9 }, "designHubProjectSpaceTypeId": "some Id" }, { "spaceGeometry": { "ceilingHeight": 9 }, "designHubProjectSpaceTypeId": "some other Id" } ]

¿Alguien podría decirme dónde estoy haciendo mal con el código anterior?

¡¡Muchas gracias de antemano!!

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

0

Algunos comentarios:

  • v[keyName] no funcionará si keyName es una cadena con un punto ( "spaceGeometry.ceilingHeight" ), tendrá que dividir la cadena y buscar el valor en cada nivel manualmente
  • uniqueValues es una matriz, no un conjunto, así que use .length en lugar de .size

Hice una función simple getNestedValue() que usa reduce para extraer un valor anidado de un objeto.

 const spaces = [ { "spaceGeometry": { "ceilingHeight": 9 }, "designHubProjectSpaceTypeId": "some Id" }, { "spaceGeometry": { "ceilingHeight": 9 }, "designHubProjectSpaceTypeId": "some other Id" } ]; const getNestedValue = (obj, path) => path.split(".").reduce((accum, key) => accum[key], obj); const getNullOrUniquePropertyValue = (arrToCheck, keyName) => { const uniqueValues = [...new Set(arrToCheck.map((v) => getNestedValue(v, keyName)))]; if (uniqueValues.length !== 1) { return null; } return uniqueValues[0]; }; const result = getNullOrUniquePropertyValue( spaces, 'spaceGeometry.ceilingHeight' ); console.log(result);

includeFullObject de mi ejemplo porque no es relevante para este problema en particular y no tengo claro qué se supone que debe hacer. Si también tiene problemas con esa parte, hágame saber los detalles y puedo ayudarlo.

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