簡體   English   中英

有沒有一種JavaScript方法可以在字符串數組中找到子字符串?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM