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

265
Visualizações
Cómo refactorizar múltiples variables y múltiples condiciones if

Estoy tratando de construir un gráfico usando elk.js, y para poder hacerlo, necesito tener un valor x para cada nodo. Los nodos de la izquierda deben tener un valor x menor que los de la derecha.

  1. El gráfico contiene nodos que se dividen en filas.
  2. Los nodos se crean 1 por 1, por lo que se realiza una verificación cada vez que se crea un nuevo nodo
  3. Los nodos recién creados se agregan siempre a la derecha
  4. Los números dentro de los nodos son valores x .
  5. Los pasos 1, 2, 3, etc. indican el orden en que agregamos los nodos.
  6. También enumeré una serie de condiciones diferentes que necesito verificar (esto es algo con lo que necesito ayuda)

ingrese la descripción de la imagen aquí

Lo que tengo actualmente:

  1. Conozco los valores de x a la derecha y a la izquierda.
  2. Conozco los valores de x de los niños en el mismo nodo principal
  3. Sé valores x en cada fila

Tengo todo para que funcione y, de hecho, funciona perfectamente bien, pero mi problema principal es este código a continuación. Estoy buscando una manera de simplificar esto de alguna manera y estoy luchando mucho, por lo que agradecería cualquier ayuda.

Si tiene un enfoque totalmente diferente a este, con gusto los conoceré.

 if (allNodesFromCurrentRow.length === 0) { newNode.nodeLayout.x = parentX + 10; } else { if (currentValue > 0 && rightValue === 0 && leftValue === 0) { newNode.nodeLayout.x = currentValue + 1; } else if ( currentValue === 0 && leftValue === 0 && rightValue > 0 ) { newNode.nodeLayout.x = rightValue - 1; } else if (currentValue === 0 && leftValue > 0 && rightValue > 0) { newNode.nodeLayout.x = (leftValue + rightValue) / 2; } else if (currentValue > 0 && leftValue === 0 && rightValue > 0) { newNode.nodeLayout.x = (rightValue + currentValue) / 2; } else if ( leftValue > 0 && currentValue === 0 && rightValue === 0 ) { newNode.nodeLayout.x = leftValue + 1; } else if (leftValue > 0 && currentValue > 0 && rightValue === 0) { newNode.nodeLayout.x = currentValue + 1; } else if (leftValue > 0 && currentValue > 0 && rightValue > 0) { newNode.nodeLayout.x = (rightValue + currentValue) / 2; } }
about 4 years ago · Juan Pablo Isaza
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