본문 바로가기

Javascript

배열 검색하기

반응형

배열 요소에 인자와 일치하는 값이 있으면, 해당 위치의 인덱스를 얻을 수 있습니다.

검색은 앞에서 부터 순차적으로 진행됩니다.되며, 

검색해야할 범위를 알 경우, 검색 시작 위치를 지정하거나, 끝에서 부터 역순으로 검색할 수도 있습니다.



Array.indexOf(검색값, 시작인덱스);

Array.lastIndexOf(검색값, 시작인덱스);



검색값 위치를 얻기


const arr1 = ['펭수''라이언''어피치''콘''브라운''무지'];
const index = arr1.indexOf('라이언'); // 1 리턴됨

console.log(index);
console.log(arr1.indexOf('라이언'index+1)); // 위치 2부터 검색하므로 -1 리턴됨
console.log(arr1.lastIndexOf('라이언')); // 1 리턴됨



검색값이 나오는 횟수를 알기


두번째 인자인 검색 시작 위치를 활용하면 검색값이 배열 안에 검색값이 몇개 나오는지 셀 수 있습니다.


const arr2 = ['펭수''라이언''어피치''콘''브라운''무지''라이언''어피치''콘''콘'];

let index = -1;
let count = 0;

do{
  index = arr2.indexOf('라이언'index+1); // 마지막 찾은 배열 인덱스 다음 위치부터 다시 검색
  count += index >= 0 ? 1:0;
}while(index >= 0);

console.log(count);



검색값이 나오는 모든 배열 위치 인덱스를 얻기


검색값이 나오는 횟수를 얻는 방법을 확장하면 검색값의 모든 위치를 가진 배열을 생성할 수 있습니다.

가져온 위치값 배열을 활용해 요소의 값을 변경하거나, 계산식을 적용하는 추가의 작업을 할 수 있습니다.


const arr3 = ['펭수''라이언''어피치''콘''브라운''무지''라이언''어피치''콘''콘'];

let index = -1;
let arr_found = [];

do{
  index = arr3.indexOf('콘'index+1); // 마지막 찾은 배열 인덱스 다음 위치부터 다시 검색
  if(index >= 0){arr_found.push(index);}
}while(index >= 0);

console.log(arr_found);



검색된 모든 배열 요소를 변경하기


검색값이 나오는 모든 배열 인덱스를 얻는 방법을 활용해 검색값이 나오는 배열 요소의 값을 변경할 수 있습니다.


const arr4 = ['펭수''라이언''어피치''콘''브라운''무지''라이언''어피치''콘''콘'];
let index = -1;

do{
  index = arr4.indexOf('콘'index+1); // 마지막 찾은 배열 인덱스 다음 위치부터 다시 검색
  arr4[index] = '네온';
}while(index >= 0);

console.log(arr4);



반응형

Comments





❌ 닫기