传递数组到 includes() JavaScript

3

我正在尝试使用.includes()方法判断一个字符串是否包含存储在数组中的多个字符串。

因此,我尝试了以下代码:

let string = 'hello james';

console.log(string.includes(['hello', 'james']));

但是返回的却是false...当我知道字符串包含'hello'或'james'时,这是可能的吗??我如何判断一个字符串是否包含单词'hello'或'james'

因此,伪代码应该是string.includes('hello' || 'james');


“hello”和“james”都应该在字符串中才为真? - Eddie
@Eddie 更像是在伪代码中使用“或者”语句,即string.includes('hello'||'james'); - Smokey Dawson
2个回答

10

根据文档includes方法的第一个参数应该是字符串而不是数组。

你可以这样做:

如果你想检查数组中的每个字符串是否都在目标字符串里出现过,可以使用everyincludes的组合。

let string = 'hello james';
let toCheck = ['hello', 'james'];

let result = toCheck.every(o => string.includes(o));

console.log(result);

如果你想检查字符串中是否至少存在数组中的一个条目,可以使用some而不是every

let string = 'hello james';
let toCheck = ['hello', 'james1'];

let result = toCheck.some(o => string.includes(o));

console.log(result);


2
抢我发言了 :| - YetAnotherBot

1
根据文档str.includesstring作为第一个参数。
因此,当您传递一个数组时,它会将字符串数组转换为单个字符串,并将该字符串用作includes函数的第一个参数。
只是为了证明这一点,
let string = "hello,james";
var array = ["hello", "james"]

console.log(string.includes(array)); // returns true, as array would be converted to "hello,james"


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接