Quiero condicionar la cadena que ingresé valor ("ello") y variable ("hola").
Si se encuentra en cadena ("hola"), el valor de retorno debe ser "ello". Si no se encuentra, el valor de retorno debe ser -1.
Pero devolvió "llll" 4 veces debido a la condición (strs[i] == arrayS[tempVal]) .
¿Cómo puedo obtener la respuesta correcta como se mencionó anteriormente?
var stres = "hello"; var strs = [...stres]; function searchStr(s) { let arrayS = [...s]; let tempVal = 0; let tempStr = []; while (tempVal < arrayS.length) { for (let i = 0; i < strs.length; i++) { if (strs[i] == arrayS[tempVal]) { tempStr.push(arrayS[tempVal]); } } tempVal++; } return tempStr; } const res = searchStr("ello"); console.log('res', res)Según usted, la lógica es correcta, simplemente rompa el bucle for cuando se cumpla la condición. Verifique el siguiente fragmento y la salida de la consola.
var stres = "hello"; var strs = [...stres]; function searchStr(s) { let arrayS = [...s]; let tempVal = 0; let tempStr = []; while (tempVal < arrayS.length) { for (let i = 0; i < strs.length; i++) { if (strs[i] == arrayS[tempVal]) { tempStr.push(arrayS[tempVal]); break; } } tempVal++; } return tempStr; } const res = searchStr("ello"); const resS = res.join(''); console.log('res = ', res); console.log('resS = ', resS);