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

163
Vistas
Actualice la matriz de objetos según la búsqueda de cadenas: Javascript

Tengo una función que toma una cadena como entrada y, en función de esta entrada, necesito actualizar una matriz de resultados. Siempre que haya una cadena "O" presente en la entrada, necesito tomar el resto de los elementos que no sean O y actualizar el resultado creando un objeto para cada uno de los elementos en la entrada. Cuando hay "Y" presente en la cadena, solo tengo que tomar toda la entrada como resultado.

 function checkValid(str) { let search = null; let textContent = str.split(" "); const orArr = ["OR", "or", "Or", "oR"]; if (textContent.includes("OR") || textContent.includes("or")) { const removedOR = textContent.filter((item) => orArr.includes(item)); search = removedOR.map((item) => { return { type: "search", value: item}; }); } else { search = { type: "search", value: str }; } return [...search] }

Para la entrada 1 OR 2 , la salida debe ser { type: "search", value: 1 } { type: "search", value: 2 }

Para la entrada 1 OR 2 AND 3 , la salida debe ser { type: "search", value: "1 OR 2 AND 3" }

Para la entrada 1 OR 23 OR 5 , la salida debe ser { type: "search", value: 1 } { type: "search", value: 23 } { type: "search", value: 5 }

Para la entrada 1 AND 3 , la salida debe ser { type: "search", value: "1 AND 3" }

Tengo problemas para escribir una función para verificar si AND está presente en la cadena cuando también hay OR. También déjame saber si hay alguna mejora que se pueda hacer.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Esto funciona

 const checkValid = string => { let words = string.toUpperCase().split(' ') if (words.includes('AND')) { return [{ type: 'search', value: string }] } words = words.filter(word => word !== 'OR') return words.map(word => ({ type: 'search', value: word })) }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Prueba esto :

 function checkValid(str) { // convert whole input into an upper case so that we can easily compare it without having any seperate OR array. let textContent = str.toUpperCase().split(' '); // If any 'AND' found in a string this function will return the output. if (textContent.includes('AND')) { return [{ type: 'search', value: str }] } // Logic if 'OR' found in the input string if (textContent.includes('OR')) { textContent = textContent.filter(item => item !== 'OR') return textContent.map(item => { return { type: 'search', value: item } }) } } console.log(checkValid('1 AND 2 OR 3'));

about 4 years ago · Juan Pablo Isaza 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