배열에 JavaScript/jQuery에 특정 문자열이 포함되어 있는지 확인하는 방법
누가 어떻게 해야 하는지 말해줄 수 있나요?"specialword"
어레이에 표시됩니까?예:
categories: [
"specialword"
"word1"
"word2"
]
이 경우 jQuery는 정말 필요 없습니다.
var myarr = ["I", "like", "turtles"];
var arraycontainsturtles = (myarr.indexOf("turtles") > -1);
힌트: indexOf는 지정된 검색 값이 처음 발생하는 위치를 나타내는 숫자를 반환하고, 검색 값이 처음 발생하는 경우에는 -1을 반환합니다.
또는
function arrayContains(needle, arrhaystack)
{
return (arrhaystack.indexOf(needle) > -1);
}
유의할 필요가 있다array.indexOf(..)
는 IE <9에서는 지원되지 않지만 jQuery에서는 지원되지 않습니다.indexOf(...)
이 기능은 이전 버전에서도 작동합니다.
jQuery 서비스:
inArray는 발견된 요소의 인덱스를 반환합니다.0
요소가 배열의 첫 번째임을 나타냅니다. -1
요소를 찾을 수 없음을 나타냅니다.
var categoriesPresent = ['word', 'word', 'specialword', 'word'];
var categoriesNotPresent = ['word', 'word', 'word'];
var foundPresent = $.inArray('specialword', categoriesPresent) > -1;
var foundNotPresent = $.inArray('specialword', categoriesNotPresent) > -1;
console.log(foundPresent, foundNotPresent); // true false
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
3.5년 후 편집
$.inArray
사실상 의 포장지입니다.Array.prototype.indexOf
(요즘에는 거의 모든 브라우저가 지원하지만) 지원하지 않는 브라우저에는 심을 제공합니다.이는 기본적으로 심을 추가하는 것과 동일합니다.Array.prototype
이것은 좀 더 관용적인/JS쉬한 작업 방식입니다.MDN은 이러한 코드를 제공합니다.요즘은 jQuery wrapper를 사용하지 않고 이 옵션을 사용하고 있습니다.
var categoriesPresent = ['word', 'word', 'specialword', 'word'];
var categoriesNotPresent = ['word', 'word', 'word'];
var foundPresent = categoriesPresent.indexOf('specialword') > -1;
var foundNotPresent = categoriesNotPresent.indexOf('specialword') > -1;
console.log(foundPresent, foundNotPresent); // true false
3년 후에 다시 편집
어머, 6년 반?
현대 Javascript에서 이를 위한 최고의 옵션은Array.prototype.includes
:
var found = categories.includes('specialword');
비교도 혼란도 없다-1
결과.델이 원하는 대로 기능합니다.다시 돌아오다true
또는false
오래된 브라우저에서는 MDN의 코드를 사용하여 폴리필이 가능합니다.
var categoriesPresent = ['word', 'word', 'specialword', 'word'];
var categoriesNotPresent = ['word', 'word', 'word'];
var foundPresent = categoriesPresent.includes('specialword');
var foundNotPresent = categoriesNotPresent.includes('specialword');
console.log(foundPresent, foundNotPresent); // true false
여기 있습니다.
$.inArray('specialword', arr)
이 함수는 양의 정수(지정된 값의 배열 인덱스)를 반환합니다.-1
지정된 값이 배열에 없는 경우.
라이브 데모: http://jsfiddle.net/simevidas/5Gdfc/
다음과 같이 사용하는 것이 좋습니다.
if ( $.inArray('specialword', arr) > -1 ) {
// the value is in the array
}
를 사용할 수 있습니다.for
루프:
var found = false;
for (var i = 0; i < categories.length && !found; i++) {
if (categories[i] === "specialword") {
found = true;
break;
}
}
include 옵션(js 삽입 함수)을 사용하면 값이 발견되면 true를 반환하고 그렇지 않으면 false가 됩니다.
정확한 인덱스를 원하는 경우 indexOf(js 내장 함수이기도 함)를 사용할 수 있습니다. 이 함수는 값이 발견되면 정확한 인덱스를 반환합니다. 그렇지 않으면 -1을 반환합니다.
.includes는 부울을 반환하는 .some 메서드로 전환할 수 있습니다.일치하는 것이 발견되면 바로 종료되므로 대규모 어레이의 퍼포먼스에 매우 적합합니다.
주의: 모두 대소문자를 구분합니다.
var myarr = ["I", "like", "turtles"];
isVal = myarr.includes('like')
index = myarr.indexOf('like')
some = myarr.some(item => item.toLowerCase() == 'like'.toLowerCase())
console.log(isVal)
console.log(index)
console.log(some)
확인 부탁드립니다.
최신 Javascript의 Array 메서드:
Array.protype.includes() // ES7에서 도입되었습니다.
- 부울을 반환한다.
const data = {
categories: [
"specialword",
"word1",
"word2"
]
}
console.log("Array.prototype.includes()")
// Array.prototype.includes()
// returns boolean
console.log(data.categories.includes("specialword"))
console.log(data.categories.includes("non-exist"))
.as-console-wrapper { max-height: 100% !important; top: 0; }
Array.protype.find() // ES6에서 도입되었습니다.
- 발견된 요소 또는 정의되지 않은 요소를 반환합니다.
const data = {
categories: [
"specialword",
"word1",
"word2"
]
}
console.log("Array.prototype.find()")
// Array.prototype.find()
// returns the element if found
// returns undefined if not found
console.log(data.categories.find(el => el === "specialword") != undefined)
console.log(data.categories.find(el => el === "non-exist") != undefined)
.as-console-wrapper { max-height: 100% !important; top: 0; }
에 안 든다$.inArray(..)
그것은 대부분의 제정신들이 용납하지 않는 추악한 종류의 jQuery 같은 해결책이다.간단한 가 있습니다.contains(str)
다음 중 하나:
$.fn.contains = function (target) {
var result = null;
$(this).each(function (index, item) {
if (item === target) {
result = item;
}
});
return result ? result : false;
}
마찬가지로 포장할 수도 있습니다.$.inArray
★★★★★★★★★★★★★★★★★★:
$.fn.contains = function (target) {
return ($.inArray(target, this) > -1);
}
언급URL : https://stackoverflow.com/questions/6116474/how-to-find-if-an-array-contains-a-specific-string-in-javascript-jquery
'sourcecode' 카테고리의 다른 글
외부 "C++"를 사용하는 이유는 무엇입니까? (0) | 2022.09.06 |
---|---|
PDOException SQLSTATE[HY000] [2002] 해당 파일 또는 디렉터리가 없습니다. (0) | 2022.09.06 |
MySQL 최적화: Different가 너무 느리다 (0) | 2022.09.06 |
클래스를 보호 클래스로 정의할 수 없는 이유는 무엇입니까? (0) | 2022.09.06 |
다른 검색/매핑 배열에 따라 배열의 키를 바꿉니다. (0) | 2022.09.06 |