只是想知道,是否有一种方法可以向.includes方法添加多个条件,例如:
var value = str.includes("hello", "hi", "howdy");
想象一下逗号表示“或”。
它现在询问字符串是否包含hello, hi或howdy。所以只有当其中一个条件为真。
有什么方法可以做到吗?
只是想知道,是否有一种方法可以向.includes方法添加多个条件,例如:
var value = str.includes("hello", "hi", "howdy");
想象一下逗号表示“或”。
它现在询问字符串是否包含hello, hi或howdy。所以只有当其中一个条件为真。
有什么方法可以做到吗?
当前回答
Def一个旧线程,但仍然得到更新的回复。 我在结果中没有看到它,它是使用.includes在一个字符串中同时搜索多个内容的最简单方法之一。 根据你想要用它做什么,只需运行一个for循环,该循环通过你想要使用.includes检查字符串的项目数组。
Const text = ' does this include item3? ';
For(i = 0; i < arr.length; i++)
{if (text.includes(arr[i])){/* do whatever */ } }
如果字符串中有这些项,它将返回true,然后你可以让它做任何事情。执行一个函数,改变一个变量等等……您还可以在if语句中添加如果它为false时该做什么。
值得注意的是,它将为列表中的每一项执行返回true的代码,因此请确保在您想要执行的代码中对其进行补偿。
编辑-你也可以把它转换成一个函数,设置它来传递参数,这些参数是你检查字符串是否包含的多个东西,只是让它返回true或false,你可以在函数之外对这些信息做任何事情。
其他回答
Def一个旧线程,但仍然得到更新的回复。 我在结果中没有看到它,它是使用.includes在一个字符串中同时搜索多个内容的最简单方法之一。 根据你想要用它做什么,只需运行一个for循环,该循环通过你想要使用.includes检查字符串的项目数组。
Const text = ' does this include item3? ';
For(i = 0; i < arr.length; i++)
{if (text.includes(arr[i])){/* do whatever */ } }
如果字符串中有这些项,它将返回true,然后你可以让它做任何事情。执行一个函数,改变一个变量等等……您还可以在if语句中添加如果它为false时该做什么。
值得注意的是,它将为列表中的每一项执行返回true的代码,因此请确保在您想要执行的代码中对其进行补偿。
编辑-你也可以把它转换成一个函数,设置它来传递参数,这些参数是你检查字符串是否包含的多个东西,只是让它返回true或false,你可以在函数之外对这些信息做任何事情。
你也可以这样做:
Const STR = "hi, there" Const res = str.includes("hello") || str.includes("hi") || str.includes('howdy'); console.log (res);
只要其中一个include返回真值,value就为真,否则,它就为假。这在ES6中工作得非常好。
这取决于你在什么上下文中使用它。 我在一个对象上使用它来检查是否有任何键有一个空字符串或null作为它的值,它工作
Object.values(object).includes('' || null)
您可以使用这里引用的.some方法。
some()方法测试数组中是否至少有一个元素 通过由提供的函数实现的测试。
// test cases const str1 = 'hi hello, how do you do?'; const str2 = 'regular string'; const str3 = 'hello there'; // do the test strings contain these terms? const conditions = ["hello", "hi", "howdy"]; // run the tests against every element in the array const test1 = conditions.some(el => str1.includes(el)); const test2 = conditions.some(el => str2.includes(el)); // strictly check that contains 1 and only one match const test3 = conditions.reduce((a,c) => a + str3.includes(c), 0) == 1; // display results console.log(`Loose matching, 2 matches "${str1}" => ${test1}`); console.log(`Loose matching, 0 matches "${str2}" => ${test2}`); console.log(`Exact matching, 1 matches "${str3}" => ${test3}`);
另外,正如下面一位用户提到的那样,匹配上面提到的“恰好一个”外观也很有趣(这是OP要求的)。这可以类似地用.reduce计算交点,然后检查它们是否等于1。
与数组数据/的精确匹配
const dataArray = ["amoos", "rifat", "hello"]; const findId = (data, id) => { 让res = data。Find (el => el == id) 返回res ?真:假; } console.log(findId(dataArray, 'Hi')) // false console.log(findId(dataArray, 'amoos')) // true