Javascript Array.prototype.includes()通配符选项?

Javascript Array.prototype.includes()通配符选项?,javascript,Javascript,我有下面的代码,它通过标记(特别是2个标记)过滤数组。它可以很好地处理字符串,但我想添加使用某种通配符的功能。例如,筛选以“-”开头的所有标记(我尝试对标记进行分组)。在这里使用这个字符串不起作用。我也尝试过使用正则表达式,例如/^-/,但这也不起作用 我发现Array.prototype.includes()不同于String.prototype.includes(),因为它只捕获整个“单词”,所以这可能解释了为什么它不起作用,但我想知道是否有办法做到这一点 var卡=[ { 卡迪德:100

我有下面的代码,它通过标记(特别是2个标记)过滤数组。它可以很好地处理字符串,但我想添加使用某种通配符的功能。例如,筛选以
“-”
开头的所有标记(我尝试对标记进行分组)。在这里使用这个字符串不起作用。我也尝试过使用正则表达式,例如
/^-/
,但这也不起作用

我发现
Array.prototype.includes()
不同于
String.prototype.includes()
,因为它只捕获整个“单词”,所以这可能解释了为什么它不起作用,但我想知道是否有办法做到这一点

var卡=[
{
卡迪德:1001,
标签:[“轻松”,“休闲”],
videoId:“rO5BVRK6KMo”,
},
{
卡迪德:1002,
标签:[“硬”,“礼貌”],
videoId:“qK--SAlGD0Q”,
}
]
var ReviewtagFilter=函数(){
让reviewstaged=[];
让tagLevel=“_easy”;
让tagTopic=“-casual”/***“-”不起到让人变得-casual&“礼貌”的作用
//日志(“tagLevel:,tagLevel+“tagTopic”,tagTopic)
reviewstaged=cards.filter(
data=>data.tags.includes(tagLevel)和&data.tags.includes(tagTopic)
);
console.log(reviewstaged)
};

查看标记过滤器()
正如其他人提到的,您不能将regex与
数组一起使用。includes()
。最简单的方法是使用
some()
every()
(取决于您想要实现的目标):

var ReviewtagFilter=function(){
让reviewstaged=[];
让tagLevel=“_easy”;
设tagTopic=/^-/;
reviewstaged=cards.filter(
data=>data.some(tag=>tag.match(tagTopic))&&data.tags.includes(tagLevel)
);
console.log(reviewstaged)
};

正如其他人提到的,您不能将regex与
数组一起使用。includes()
。最简单的方法是使用
some()
every()
(取决于您想要实现的目标):

var ReviewtagFilter=function(){
让reviewstaged=[];
让tagLevel=“_easy”;
设tagTopic=/^-/;
reviewstaged=cards.filter(
data=>data.some(tag=>tag.match(tagTopic))&&data.tags.includes(tagLevel)
);
console.log(reviewstaged)
};

听起来好像您不需要
包括
谢谢。你的意思是代替过滤器()吗?为什么要代替过滤器?使用
includes
返回筛选时使用的布尔值,
filter
本身返回一个数组
some
还返回一个布尔值,但您包括匹配内容的自定义功能。您可以通过执行
arr.some(item=>item==something)
轻松地重新创建
arr.includes(something)
。但是您需要不同于直接匹配的逻辑,因此您可以在
some
的谓词中实现该逻辑。听起来您不需要
includes
谢谢。你的意思是代替过滤器()吗?为什么要代替过滤器?使用
includes
返回筛选时使用的布尔值,
filter
本身返回一个数组
some
还返回一个布尔值,但您包括匹配内容的自定义功能。您可以通过执行
arr.some(item=>item==something)
轻松地重新创建
arr.includes(something)
。但是您需要不同于直接匹配的逻辑,因此您可以在
some
的谓词中实现该逻辑。