我有一个字符串数组,我想检查这些字符串是否包含某个子字符串。
以下代码是我需要实现的示例:该函数从用户处获取消息,并在标题中搜索包含用户消息的一系列URL:
var redditSubModule = "node";
var http = require('https');
var url = "https://www.reddit.com/r/soccerstreams/new/.json";
var i = 0;
var subject = (ctx.message.text).substring(8);
var request = http.get(url, function(response) {
var json = '';
response.on('data', function(chunk) {
json += chunk;
});
response.on('end', function() {
var redditResponse = JSON.parse(json);
redditResponse.data.children.forEach(function(child) {
if(child.data.domain !== 'self.node') {
url = child.data.url;
console.log('URL : ' + url);
if (url.indexOf(subject) > -1) {
console.log('URL : ' + url);
} else {
console.log("nothing...");
}
i++;
}
});
})
});
request.on('error', function(err) {
console.log(err);
});
如果您尝试使用“USA”填充主题(因为标题中有一个带有该字符串的主题),indexOf似乎不起作用,它会打印一个“无...”的列表。
记录typeof url会给string类型,所以我不知道这里发生了什么......
我做错了什么?
答案 0 :(得分:0)
您可以使用array.prototype.find
和array.prototype.includes
:
var strs = ["aaa", "xxx", "yyy_leon"];
var search = "leon";
var found = strs.find(s => s.includes(search));
if (found) {
console.log("found: ", found);
} else {
console.log("nothing");
}