1

假设我有一个包含 30 个字符串的数组。

我想确定字符串是否包含“ea”字符,然后我会提醒包含 ea 的字符串。

我想使用 indexOf 我该怎么做?

假设我有一个数组

var new = ["香蕉","苹果","橙子"];

我尝试了类似...

new_an = new.indexOf("an");
for (i=0; i < new.length;i++ )
{

if (new_an = -1)
{
    alert(new[i]);
}
}

所以只有香蕉和橙子里面有一个,我只想提醒这两个……但不确定我在这里错过了什么……

4

5 回答 5

1

如果给定字符串中没有匹配项,则indexOf返回 -1。你可以这样做:

var arr = ["string 1", "string 2", "string 3", "test"];
for(var i = 0; i < arr.length; i++) {
  if(arr[i].indexOf('str') != -1) {
    console.log(arr[i]);
  }
}

这个例子的输出应该是:string 1, string 2, string 3

于 2013-03-06T10:42:23.477 回答
0

在字符串数组的循环中使用以下解决方案。

Example

Search a string for "welcome":

var str="Hello world, welcome to the universe.";
var n=str.indexOf("welcome");
The result of n will be:

13

请参阅此处了解更多详细信息

于 2013-03-06T10:41:12.440 回答
0

我会简单地遍历数组,然后检查String.contains()您的搜索字符串是否在原始字符串中。

str.contains(searchString);
于 2013-03-06T10:41:56.113 回答
0
function searchStringInArray (str, strArray) {
    for (var j=0; j<strArray.length; j++) {
        if (strArray[j].match(str)) return j;
    }
    return -1;
}

j 是数组中 str 的索引。

于 2013-03-06T10:45:05.457 回答
0

一种使用方式filter

var it   = ["aea", "b", "c", "dea", "eee", "fea"];
var find = "ea";

var matches = it.filter(function(el) {
  return el.indexOf(find) > -1;
});

alert(matches);
于 2013-03-06T10:47:55.023 回答