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

235
Visualizações
Comparación basada en una combinación de cadenas válida en javascript

He seleccionado valores en la pantalla y su valor se almacena en dos variables. var uval = '100'; var eval = '5';

Hay 2 combinaciones que tienen valores: let combination1= 'u:100;e:1,4,5,10' let combination2 = 'u:1000;e:120,400,500,1000'

Quiero verificar si uval y eval están presentes en alguna combinación y establecer algunos valores booleanos en verdadero; de lo contrario, será falso. uval se comparará con u en esa combinación y eval con e en esa combinación.

Boolean en este ejemplo será verdadero. Si uval='50'; eval='5' entonces será falso.

Intenté usar un bucle for usando split(';') y comparé cada u con uval y e con eval. Estoy buscando un enfoque diferente para esto, además de usar bucles for tradicionales cada vez.

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

0

puedes hacer algo como esto

básicamente creé una función que transforma tu combinación en un objeto y usé ese objeto dentro de la función de verificación

 const combination1= 'u:100;e:1,4,5,10' const combination2 = 'u:1000;e:120,400,500,1000' const uval = '100'; const eval = '5'; const toObject = combination => Object.fromEntries( combination.split(';').map(c => c.split(':')).map(([k, v]) => [k, v.split(',')]) ) const check = (combination, key , value ) => (toObject(combination)[key] || []).includes(value) const checkEval = (combination, eval) => check(combination, 'e', eval) const checkUval = (combination, uval) => check(combination, 'u', uval) console.log(checkEval(combination1, eval)) console.log(checkEval(combination2, eval)) console.log(checkUval(combination1, uval)) console.log(checkUval(combination2, uval))

about 4 years ago · Juan Pablo Isaza Relatório

0

Creé una función llamada getKeyValuePairs que devuelve pares de valores clave para una combinación dada.

Entonces, si llamamos a getKeyValuePairs con la combinación "u:100;e:1,4,5,10" , devolverá la siguiente matriz de pares de valores clave:

 [ [ 'u', [ '100' ] ], [ 'e', [ '1', '4', '5', '10' ] ] ]

Luego creé otra función llamada groupCombinations que fusiona todas las combinaciones que se le pasan en un solo objeto.

Entonces, si llamamos a groupCombinations con combinaciones "u:100;e:1,4,5,10" y "u:1000;e:120,400,500,1000" , devolvería el siguiente objeto:

 { u: Set(2) {"100", "1000"}, e: Set(8) {"1", "4", "5", "10", "120", "400", "500", "1000"} }

Finalmente, agrupé todas las combinaciones usando groupCombinations y luego verifiqué si el grupo contiene uVal y eVal .

 const getKeyValuePairs = (combination) => combination .split(";") .map((str) => str.split(":")) .map(([k, v]) => [k, v.split(",")]); const groupCombinations = (...combinations) => Object.fromEntries( Object.entries( combinations.reduce( (group, combination) => ( getKeyValuePairs(combination).forEach(([k, v]) => (group[k] ??= []).push(...v) ), group ), {} ) ).map(([k, v]) => [k, new Set(v)]) ); const uVal = "100"; const eVal = "5"; const combination1 = "u:100;e:1,4,5,10"; const combination2 = "u:1000;e:120,400,500,1000"; const allCombinations = groupCombinations(combination1, combination2); const isUVal = allCombinations["u"].has(uVal); const isEVal = allCombinations["e"].has(eVal); const isBoth = isUVal && isEVal; console.log(isBoth);

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