varios varias sentencia que else ejemplo condiciones condicionales condicion anidado javascript methods

javascript - varias - sentencia if



Condiciones mĂșltiples para el mĂ©todo.includes() de JavaScript. (3)

solo me pregunto si hay una manera de agregar múltiples condiciones a un método .includes, por ejemplo:

var value = str.includes("hello", "hi", "howdy");

imagine que la coma indica "o" (ahora se pregunta si la cadena contiene hola o hola), así que solo si una y solo una de las condiciones son verdaderas.

¿Hay un método para hacer eso?


Con includes() , no, pero puede lograr lo mismo con REGEX a través de test() :

var value = /hello|hi|howdy/.test(str);

O, si las palabras vienen de una fuente dinámica:

var words = array(''hello'', ''hi'', ''howdy''); var value = new RegExp(words.join(''|'')).test(str);

El enfoque REGEX es una mejor idea porque le permite hacer coincidir las palabras como palabras reales, no como subcadenas de otras palabras. Solo necesitas la palabra marcador de límite /b , así que:

var str = ''hilly''; var value = str.includes(''hi''); //true, even though the word ''hi'' isn''t found var value = //bhi/b/.test(str); //false - ''hi'' appears but not as its own word


Eso debería funcionar incluso si una, y solo una de las condiciones es verdadera:

var str = "bonjour le monde vive le javascript"; var arr = [''bonjour'',''europe'', ''c++'']; function contains(target, pattern){ var value = 0; pattern.forEach(function(word){ value = value + target.includes(word); }); return (value === 1) } console.log(contains(str, arr));


Puede utilizar el método .some que se hace referencia here .

El método some() comprueba si al menos un elemento de la matriz pasa la prueba implementada por la función proporcionada.

// test cases var str1 = ''hi, how do you do?''; var str2 = ''regular string''; // does the test strings contains this terms? var conditions = ["hello", "hi", "howdy"]; // run the tests agains every element in the array var test1 = conditions.some(el => str1.includes(el)); var test2 = conditions.some(el => str2.includes(el)); // display results console.log(str1, '' ===> '', test1); console.log(str2, '' ===> '', test2);