[英]Is there a javascript method to find substring in an array of strings?
假設我的數組是[“ abcdefg”,“ hijklmnop”],並且我正在查看“ mnop”是否是該數組的一部分。 如何使用javascript方法做到這一點?
我試過了,它不起作用:
var array= ["abcdefg", "hijklmnop"];
console.log(array.indexOf("mnop")); //-1 since it does not find it in the string
var array= ["abcdefg", "hijklmnop"];
var newArray = array.filter(function(val) {
return val.indexOf("mnop") !== -1
})
console.log(newArray)
一個可能的解決方案是通過string.match
過濾數組
var array= ["abcdefg", "hijklmnop"]; var res = array.filter(x => x.match(/mnop/)); console.log(res)
您可以使用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
方法對數組中的每個項目執行一個函數:如果該函數返回至少一項的真實值 ,則Array#some
返回true。
Javascript無法提供您之前要問的內容,因為使用現有功能很容易做到。 您應該分別遍歷每個數組元素,並在每個元素上調用indexOf
:
array.forEach(function(str){
if(str.indexOf("mnop") !== -1) return str.indexOf("mnop");
});
可以這樣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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.