2010-01-23 3 views
3

문자열에 배열의 항목이 포함되어 있으면 JavaScript 함수를 호출하려면 어떻게해야합니까?문자열에 배열의 항목이 포함되어 있으면 함수를 호출하십시오.

예,이 조건을 만족하는 모든 요소가있는 경우

+0

이 좀 더 구체적으로 할 수 있습니까? 실례를 들려 주시겠습니까? .. 문제가 발생하지 않았습니다. :) – Reigel

+2

inArray가 도움이됩니까? http://api.jquery.com/jQuery.inArray/ – David

답변

1

당신은 some(), ECMAScript를 5에 추가 된 모질라 확장 사용할 수 있습니다

var haystack = 'I like eggs!'; 
if(['spam', 'eggs'].some(function(needle) { 
    return haystack.indexOf(needle) >= 0; 
})) alert('spam or eggs'); 
2

당신은 찾을 grep 기능을 사용할 수 jQuery를 :) 사용할 수 있습니다

// get all elements that satisfy the condition 
var elements = $.grep(someArray, function(el, index) { 
    // This assumes that you have an array of strings 
    // Test if someString contains the current element of the array 
    return someString.indexOf(el) > -1; 
}); 

if (elements.length > 0) { 
    callSomeFunction(); 
} 
1

간단히 배열의 항목을 통해 루프 가치를 찾으십시오. 그것은 당신이 당신을 위해 그것을하기 위해 어떤 방법을 사용하더라도 당신이해야 할 일입니다. 루핑을하면 매치를 찾자 마자 루프에서 쉽게 빠져 나올 수 있습니다. 체크 아웃해야하는 항목의 수를 평균적으로 줄여줍니다.

for (var i=0; i<theArray.length; i++) { 
    if (theArray[i] == theString) { 
    theFunction(); 
    break; 
    } 
} 
+0

'for..in'을 사용하여 배열을 반복하지 마십시오! – Christoph

+0

@Christoph : 머리를 주셔서 감사합니다. 저는 보통 for..in을 사용하지 않으며 가능한 위험에 대한 언급없이 자습서에서 사용됩니다. – Guffa

+0

주위에 나쁜 JS 코드가 많이 있습니다. 그것이 대중 언어의 문제입니다. 모든 사람들은 자신들을 '알고'있다고 주장하고 자신의 지식을 전파하려는 경향이 있습니다. 사람들이 말하는 내용을 알아야한다고 생각하는 '공식적인'출처에서 오는 정보조차 때로는 잘못된 것입니다. (Apple JavaScript Coding Guidelines) – Christoph

관련 문제