Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

84
Views
Crear una función para buscar una matriz de cadenas para una determinada palabra y devolver el elemento que contiene esa palabra

El proyecto que estoy tratando de completar actualmente te da una matriz ( coffees ). El objetivo es determinar si el café necesita azúcar, crema o nada, en función de si es un tueste claro, medio u oscuro. Por ejemplo, light colombian roast debe salir I'll have the light colombian roast and drink it black . El código actual que tengo hace esto correctamente, excepto solo por la primera instancia de claro, medio, oscuro que se encuentra en los cafés de matriz. No estoy muy seguro de cómo escribir mi función para incluir todas las instancias de la palabra clave que se encuentra, en lugar de detener y almacenar solo el índice de la primera cadena en la que se encuentra la palabra.

 const coffees = [ "light colombian roast", "hawaiian dark roast", "guatemalan blend medium roast", "dark madagascar blend", "jamaican dark blue", "jamaican medium roast", "salvador robusto light" ] let output = "" function searchStringInArray (str, strArray) { for (var j=0; j<strArray.length; j++) { if(strArray[j].match(str)) { return j; } } return -1; } for (const coffee of coffees) { if (coffee.includes("light")) { let i; i = searchStringInArray('light', coffees); output += `I'll have the ${coffees[i]} and drink it black` } else if (coffee.includes("medium")) { let k; k = searchStringInArray('medium', coffees); output += `I'll have the ${coffees[k]} and add cream only` } else if (coffee.includes("dark")) { let n; n = searchStringInArray('dark', coffees); output += `I'll have the ${coffees[n]} and add cream and sugar` } output += "\n" } console.log(output)
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

En lugar de hacer que la lógica sea demasiado compleja, simplemente puede lograrlo mediante el uso de Array.map() junto con la declaración de cambio para un mejor rendimiento en comparación con múltiples cláusulas if/else.

Demostración de trabajo:

 const coffees = [ "light colombian roast", "hawaiian dark roast", "guatemalan blend medium roast", "dark madagascar blend", "jamaican dark blue", "jamaican medium roast", "salvador robusto light" ]; const output = coffees.map(coffee => { switch(true) { case (/light/i.test(coffee)): str = `I'll have the ${coffee} and drink it black` break; case (/medium/i.test(coffee)): str = `I'll have the ${coffee} and add cream only` break; case (/dark/i.test(coffee)): str = `I'll have the ${coffee} and add cream and sugar` break; } return str; }); console.log(output);

about 4 years ago · Juan Pablo Isaza Report

0

Creo que lo estás complicando demasiado a menos que me esté perdiendo un paso en lo que estás tratando de hacer. Ya repasó cada café, no es necesario volver a buscarlo.

 for (const coffee of coffees) { if (coffee.includes("light")) { output += `I'll have the ${coffee} and drink it black` } else if (coffee.includes("medium")) { output += `I'll have the ${coffee} and add cream only` } else if (coffee.includes("dark")) { output += `I'll have the ${coffee} and add cream and sugar` } output += "\n" }
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!