Javascript 如果包含字符,则为x,否则为y(木偶演员)
我有这个代码,理论上应该是可行的,但事实并非如此 我想它缺少了一些东西:Javascript 如果包含字符,则为x,否则为y(木偶演员),javascript,node.js,puppeteer,Javascript,Node.js,Puppeteer,我有这个代码,理论上应该是可行的,但事实并非如此 我想它缺少了一些东西: function containsWords(words, word) { return words.filter(w => w === word).length > 0; } async function grabResult(page) { const message = await page.$eval( 'div > div:nth-child(2)',
function containsWords(words, word) {
return words.filter(w => w === word).length > 0;
}
async function grabResult(page) {
const message = await page.$eval(
'div > div:nth-child(2)',
(el) => el.innerText
);
const username = await page.$eval(
'child(15) .username',
(el) => el.innerText
);
return {
message: containsWords(['http', 'https'], message) ? '' : message,
username: username
};
};
module.exports = grabResult;
基本上,如果消息中有“http”或“https”,上述代码应该输出一条空消息:
{ message: '', username: 'John' }
如果未检测到这些单词,则应正常输出消息:
{ message: 'message text', username: 'John' }
但是,现在即使消息确实包含“http”和“https”,它仍然返回带有这些单词的消息
所以它要么不检测这些单词,要么根本不执行containswarks过滤器
它只是忽略并输出每一条消息,而不管我选择了什么停止词
如果有人能了解代码并告诉我这里遗漏了什么,我将不胜感激
谢谢。在containswarks()
中,您可以将整个消息与每个单词进行比较。要检查消息是否包含任何单词,您需要以下内容:
函数包含剑(文字、消息){
返回单词.some(w=>message.includes(w));
}
在containswarks()
中,将整个消息与每个单词进行比较。要检查消息是否包含任何单词,您需要以下内容:
函数包含剑(文字、消息){
返回单词.some(w=>message.includes(w));
}
。工作得很有魅力!非常感谢!哈哈,又是你了:)谢谢你的帮助,谢谢你。你过去帮过我做木偶师:)@robert0很高兴它帮了我。(快乐)太棒了。工作得很有魅力!非常感谢!哈哈,又是你了:)谢谢你的帮助,谢谢你。你过去帮过我做木偶师:)@robert0很高兴它帮了我。快乐编码)似乎你在寻找。请注意,另一个问题是如何将问题归结为一个简单的、可重复的场景,该场景带有样本输入,可以很容易地说出他们需要什么。我通过搜索“javascript检查子字符串是否在字符串数组的任何元素中”找到了这篇文章。再说一次,没有木偶演员,让它工作起来了。谢谢你花时间和精力来帮助我!看来你在找我。请注意,另一个问题是如何将问题归结为一个简单的、可重复的场景,该场景带有样本输入,可以很容易地说出他们需要什么。我通过搜索“javascript检查子字符串是否在字符串数组的任何元素中”找到了这篇文章。再说一次,没有木偶演员,让它工作起来了。谢谢你花时间和精力来帮助我!