2016-05-04 3 views
0

У меня возникла проблема при поиске в массиве. Я хотел, чтобы проверить, существует ли определенная строка в одном из элементов, напримерПоиск определенных строк в массиве (Javascript)

Массив:

["4_1", "4_2", "4_3"] 

Я проверю, если «4» существует строка в одной из переменных.

Спасибо!

+0

'STRING.indexOf (игла)' в цикле? – Rayon

ответ

1

Самый простой способ состоит в использовании Array.prototype.join & & indexOf методы

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

Обновление

Согласно комментарию @ t.niese, этот ответ может привести к неправильному результату, например, если вы ищете 14, он вернет 2 - что не так, потому что ваш массив не содержит элемента, который начинается с 14. В этом случае лучше использовать ответ @ Nina или вы можете присоединиться к нему по-другому ["4_1", "4_2", "4_3"].join(" ").indexOf("14") // -1

+0

Производительность может быть не лучшей для больших массивов, а также будет иметь проблему, если ОП решает использовать строку с более чем на char как «игла», потому что тогда она даст ложное значение для параметра «[» 4_1 "," 4_2 "," 4_3 "]. Join (" "). IndexOf (" 14 ")'. –

+0

Для всех '.join' можно будет найти случай сбоя:' ["4_1", "4_2", "4_3"]. Join (separator) .indexOf ("1" + separator + "4") 'будет показать результат. Если ОП действительно ищет только числа, то он будет работать. Но поскольку сам вопрос является только общим [...], я хотел проверить, существует ли определенная строка в одном из элементов [...] ', тогда в этих условиях' .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

«Некоторые» действительно хороши. Да, почему регистр нечувствителен к числу? –

+0

@PraveenKumar, это было для использования в будущем ...;) –

Смежные вопросы