indexOf()不起作用

时间:2018-03-27 13:23:50

标签: javascript arrays indexof

我有一个字符串数组,我想检查这些字符串是否包含某个子字符串。

以下代码是我需要实现的示例:该函数从用户处获取消息,并在标题中搜索包含用户消息的一系列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类型,所以我不知道这里发生了什么......
我做错了什么?

1 个答案:

答案 0 :(得分:0)

您可以使用array.prototype.findarray.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");
}