나는 지금 이 함수를 사용하여 확인하려면 다음과 같습니다.
function inArray(needle,haystack)
{
var count=haystack.length;
for(var i=0;i<count;i++)
{
if(haystack[i]===needle){return true;}
}
return false;
}
작동하잖아. # 39 m, 어떤 I& 찾는 수행할 수 있는지의 여부가 더 좋은 방법이 있습니다.
[1, 2, 3].includes(2); // true
[1, 2, 3].includes(4); // false
[1, 2, 3].includes(1, 2); // false (second parameter is the index position in this array at which to begin searching)
[2]: https://caniuse.com/ # 성과 = 어레이입니다 dm_ownerdm_owner [3]: # 폴리필 https://developer.mozilla.org/en-us/docs/web/javascript/reference/global_objects/array/includes
편집: 참고로 이 항목의 경우 거짓값 되돌려줍니다 배열은 객체에는. Javascript 에서 두 개의 서로 다른 객체에 유사한 객체는 때문이다.
function isInArray(value, array) {
return array.indexOf(value) > -1;
}
isInArray(1, [1,2,3]); // true
최근의 브라우저에서 따라 2016년 ecma 스크립트 기능을 사용할 수 있습니다 (es7) 다음영업일 있는 [아리스프로토티페스의 크루즈] (https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/includes) 이 존재하는 경우 확인할 수 있도록 하는 방법을 항목이 더 쉽게 어레이에서는:
<! - begin 스니핏: js 숨기십시오: 거짓값 콘솔: 진정한 바벨. > 거짓값 -;
const array = [1, 2, 3];
const value = 1;
const isInArray = array.includes(value);
console.log(isInArray); // true
끝 - < 스니핏 >;!
&Gt indexof (https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf") ',' a href = " < 됩니다;;;;; /a> <.
haystack.indexOf(needle) >= 0
스케쳐내 이전 지원하기 위해 Internet explorer (<. Ie9), you& # 39, ll, a href = " > 있습니다 https://stackoverflow.com/questions/1744310/how-to-fix-array-indexof-in-javascript-for-ie-browsers " < 할, 현재 코드 해결 방법으로 though< /a>.;;;
이 목록에 없는 한, 모든 가치를 부여하는 데 필요한 정렬할지 비교하십시오 바늘. 이에 따라 솔루션 모두 n/2 '비교' 와 '평균' 실행하십시오 indexOf 할 것으로 보인다. 그러나 '는' indexOf 내장현 방법을 추가 최적화 및 약간 빠른 실제로 사용할 수 있습니다. 단, 응용 프로그램을 검색할 경우 매우 자주 열거합니다 (라고 1000년 배 per second) 또는 (말하도다 100k 엔트리입니다), 스피드 차이는 엄청납니다 열거합니다 거역한다면 중요하지 않습니다.
I feel free to it 에 대한 여러 번 있지만, 이 구글 크롬 52tb 벤치 마크 코피파스테 다른 browser& # 39 의 콘솔이군요.
var array = [0,1,2,3,4,5,6,7,8,9];
var result = 0;
var start = new Date().getTime();
for(var i = 0; i < 10000000; i++)
{
if(array.includes("test") === true){ result++; }
}
console.log(new Date().getTime() - start);
var array = [0,1,2,3,4,5,6,7,8,9];
var result = 0;
var start = new Date().getTime();
for(var i = 0; i < 10000000; i++)
{
if(array.indexOf("test") > -1){ result++; }
}
console.log(new Date().getTime() - start);
function inArray(target, array)
{
/* Caching array.length doesn't increase the performance of the for loop on V8 (and probably on most of other major engines) */
for(var i = 0; i < array.length; i++)
{
if(array[i] === target)
{
return true;
}
}
return false;
}
var array = [0,1,2,3,4,5,6,7,8,9];
var result = 0;
var start = new Date().getTime();
for(var i = 0; i < 10000000; i++)
{
if(inArray("test", array) === true){ result++; }
}
console.log(new Date().getTime() - start);
하지만 작동안함 더불어 indexOf 사용할 수 있습니다 '마지막 버전의 인터넷 익스플로러.
function isInArray(value, array) {
return array.indexOf(value) > -1;
}
isInArray(1, [1,2,3]); // true
난 다음 코드를 사용하는 것이 좋습니다.
function inArray(needle, haystack) {
var length = haystack.length;
for (var i = 0; i < length; i++) {
if (haystack[i] == needle)
return true;
}
return false;
}
[_Contains] 사용할 수 있습니다 (http://underscorejs.org/ # 포함) 에서 함수은 언더스코엘가이스 라이브러리란 이를 위해서는:
if (_.contains(haystack, needle)) {
console.log("Needle found.");
};
로다시 [.includes] [1] 에서 사용할 수 있습니다 (이 역시 앨리어스를 .contains)
전체 어레이입니다 검색할 수 있습니다.
_.includes([1, 2, 3], 1); // true
어레이입니다 시작 인덱스화할 에서 검색할 수 있습니다.
_.includes([1, 2, 3], 1, 1); // false (begins search at index 1)
검색 문자열으로:
_.includes('pebbles', 'eb'); // true (string contains eb)
또한 확인하는 간단한 어레이에는 작동됨 객체.
_.includes({ 'user': 'fred', 'age': 40 }, 'fred'); // true
_.includes({ 'user': 'fred', 'age': false }, false); // true
마지막 비유하사 대해 유의할 작동하잖아 프리미티브를 문장열, 숫자, 불 (bool) 값들 하지만 어레이나 객체에는 통해 같은 대한 검색할 수 없습니다.
_.includes({ 'user': 'fred', 'age': {} }, {}); // false
_.includes({ 'user': [1,2,3], 'age': {} }, 3); // false
[1]: https://lodash.com/docs # dm_ownerdm_owner