假设我的数组是[“abcdefg”,“hijklmnop”],我正在查看“mnop”是否是此数组的一部分。如何使用javascript方法执行此操作?
我尝试过这个并不起作用:
var array= ["abcdefg", "hijklmnop"];
console.log(array.indexOf("mnop")); //-1 since it does not find it in the string
答案 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>