JavaScript에서 배열의 요소를 검색하는 또 다른 방법
5079 단어 algorithmsjavascript
function funnelSearch(arr, target, x = 0) {
if (!arr.length) return;
if (arr.length === 1 && arr[0] === target) {
return target;
}
const left = arr[x];
const right = arr[arr.length - x - 1];
if (left === target || right === target) {
return target;
}
if (x > (arr.length / 2)) return;
return funnelSearch(arr, target, x + 1);
}
const numbers = [1,2,3,4,5,6,7,8,10];
console.log(funnelSearch(numbers, 1)); // 1
console.log(funnelSearch(numbers, 5)); // 5
console.log(funnelSearch(numbers, 0)); // undefined
console.log(funnelSearch('Marco Damaceno', 'D')); // D
솔직히 나는 이 기술의 이름을 모른다.
인덱스 0에서 시작하고 마지막 인덱스에서 첫 번째 인덱스를 증가시키고 마지막 인덱스를 감소시킵니다. 그리고 요소를 찾을 때까지 계속됩니다. 찾지 못하면
undefined
를 반환합니다. 인덱스 0에서 시작하여 마지막 인덱스까지 평소보다 모든 요소를 살펴보는 데 절반의 시간이 걸립니다.웹에서 문서화된 것과 같은 것을 찾지 못했기 때문에 이름을 funnelSearch로 지정했습니다. 검색에 적절한 단어를 사용하지 않았을 수도 있습니다. 바이너리 검색?
이 기술에 알려진 이름이 있으면 알려주세요.
추신: 문자열에서도 작동합니다.
Reference
이 문제에 관하여(JavaScript에서 배열의 요소를 검색하는 또 다른 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mdamaceno/another-way-to-search-for-an-element-in-an-array-in-javascript-1lam텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)