是否有一个javascript方法来查找字符串数组中的子字符串?

时间:2016-08-05 22:32:30

标签: javascript

假设我的数组是[“abcdefg”,“hijklmnop”],我正在查看“mnop”是否是此数组的一部分。如何使用javascript方法执行此操作?

我尝试过这个并不起作用:

var array= ["abcdefg", "hijklmnop"];
console.log(array.indexOf("mnop")); //-1 since it does not find it in the string

5 个答案:

答案 0 :(得分:3)

var array= ["abcdefg", "hijklmnop"];
var newArray = array.filter(function(val) {
    return val.indexOf("mnop") !== -1
})
console.log(newArray)

答案 1 :(得分:1)

可能的解决方案是通过string.match

过滤数组

var array= ["abcdefg", "hijklmnop"];

var res = array.filter(x => x.match(/mnop/));

console.log(res)

答案 2 :(得分:1)

您可以使用Array#some

// ES2016
array.some(x => x.includes(testString));

// ES5
array.some(function (x) {
  return x.indexOf(testString) !== -1;
});

注意:箭头功能是ES6 / ES2015的一部分; String#includes是ES2016的一部分。

Array#some方法对数组中的每个项执行一个函数:如果函数为至少一个项返回 truthy值,则Array#some返回true。 / p>

答案 3 :(得分:0)

Javascript不提供您之前提出的问题,因为它可以轻松完成现有功能。您应该单独遍历每个数组元素并在每个元素上调用indexOf

array.forEach(function(str){
    if(str.indexOf("mnop") !== -1) return str.indexOf("mnop");
});

答案 4 :(得分:0)

可以这样做https://jsfiddle.net/uft4vaoc/4/

最终,你可以用千种不同的方式做到这一点。上面和下面的几乎所有答案都可行。

<script>
var n;
var str;
var array= ["abcdefg", "hijklmnop"];
//console.log(array.indexOf("mnop")); //-1 since it does not find it in the string
for (i = 0; i < array.length; i++) { 
    str = array[i];
    n = str.includes("mnop");
    if(n === true){alert("this string "+str+" conatians mnop");}
}
</script>
相关问题