【发布时间】:2021-04-04 00:44:42
【问题描述】:
在我的情况下,我必须只保留包含“eat”的标题(或字符串),因此“eating”也可以,问题来自“cheat”,因为它包含“eat”但是它通常会脱离上下文标题,同时我应该保留“作弊餐”这个词。
如果不是因为“作弊”这个词本身,我可以选择 if:.includes("eat") || .includes("cheat meal"),我会完成它。但不幸的是,“作弊”之后也没有“用餐”,所以在这种情况下,如果在没有“用餐”的情况下使用“作弊”或“作弊”,我该如何排除?
我可以做一个丑陋的 if 语句链,但我很确定我错过了一些可以更优雅地解决问题的高级 includes js 方法变体
编辑示例:
“我今天吃什么”//接受
“我是如何作弊的……” // 排除
“我的饮食习惯是什么”//接受
“本周最佳作弊餐” // 接受
“年度最佳欺骗餐” // 接受
EDIT2 完整迭代(带解决方案):
let vid = [], vidEat = [];
for(let j=0; j < vidData.items.length; j++){
if (vidData.items[j] != undefined){
vid.push(vidData.items[j].snippet.resourceId.videoId)
if (/\beat|\bmeal/i.test(vidData.items[j].snippet.title)){
vidEat.push(vidData.items[j].snippet.resourceId.videoId)
}
}
}
【问题讨论】:
-
匹配
cheat meal背后的逻辑是什么?eat在cheat里面,应该排除在外吧? -
不应排除它,因为该字符串也有“meal”,但如果单独发现“cheat”,则应排除它。我将编辑以添加示例
标签: javascript string filter include indexof