2016-05-04 65 views

回答

1

最簡單的方法是使用Array.prototype.join & & indexOf方法

["4_1", "4_2", "4_3"].join("").indexOf("4")

更新

根據@ t.niese的評論,這個答案可能會導致錯誤的結果,例如,如果你正在尋找14它將返回2 - 什麼是錯的,因爲你的數組不包含在14開始的元素。在這種情況下,最好使用@妮娜的答案,或者你可以以其他方式加入 ["4_1", "4_2", "4_3"].join(" ").indexOf("14") // -1

+0

對於較大的數組,性能可能不是最好的,並且如果OP決定使用多於char的字符串作爲'needle',則會出現問題,因爲它會給出'[「4_1 「,」4_2「,」4_3「]。join(」「)。indexOf(」14「)'。 –

+0

對於所有'.join',都可以找到失敗案例:'[「4_1」,「4_2」,「4_3」]。join(separator).indexOf(「1」+ separator +「4」)'will顯示結果。如果OP真的只查找數字,那麼它將起作用。但是因爲這個問題本身只是一個通用的'[...]我想檢查某個字符串是否存在於某個元素中,那麼在這種情況下'.join'永遠不會是一個好的解決方案。 –

0

實際上,你可以做一個循環,並檢查indexOf是不是-1

["4_1", "4_2", "4_3"].forEach(function (element, index, array) { 
 
    if (element.indexOf(4) != -1) 
 
    alert("Found in the element #" + index + ", at position " + element.indexOf(4)); 
 
});

3

你可以使用一個循環吧。

var arr = ["4_1", "4_2", "4_3"]; 
 
    search = RegExp(4), 
 
    result = arr.some(search.test.bind(search)); 
 

 
document.write(result);

+0

我並不完全瞭解代碼複雜性的必要性。爲什麼不區分大小寫和爲什麼綁定? – mplungjan

+0

'some'真的很好。是的,爲什麼不區分大小寫? –

+0

@PraveenKumar,它是爲將來的參考...;) –

相關問題