gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 00:18:03 24 4
gpt4 key购买 nike

我有以下代码,它按标签(特别是 2 个标签)过滤数组。它适用于单词字符串,但我想添加使用某种通配符的功能。例如,过滤以 "-" 开头的所有标签(我尝试对标签进行分组)。在这里使用这个字符串不起作用。我也尝试过使用正则表达式,例如。 /^-/ 但这也不起作用。

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

var cards = [
{
cardId: 1001,
tags: ["_easy", "-casual"],
videoId: "rO5BVRK6KMo",
},
{
cardId: 1002,
tags: ["_hard", "-polite"],
videoId: "qK--SAlGD0Q",
}
]

var ReviewtagFilter = function() {
let reviewsTagged = [];
let tagLevel = "_easy";
let tagTopic = "-casual"; //***"-" doesn't work to get -casual & "-polite"
//console.log("tagLevel: ", tagLevel + "tagTopic" , tagTopic)

reviewsTagged = cards.filter(
data => data.tags.includes(tagLevel) && data.tags.includes(tagTopic)
);
console.log(reviewsTagged)
};
ReviewtagFilter();

最佳答案

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

var ReviewtagFilter = function() {
let reviewsTagged = [];
let tagLevel = "_easy";
let tagTopic = /^-/;

reviewsTagged = cards.filter(
data => data.some(tag => tag.match(tagTopic)) && data.tags.includes(tagLevel)
);
console.log(reviewsTagged)
};

关于javascript - Array.prototype.includes() 通配符选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59626808/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com