본문 바로가기

Javascript/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);



반응형

'Javascript > Javascript중급' 카테고리의 다른 글

문자열을 배열로 만들기  (0) 2020.05.20
배열 요소의 추가  (0) 2020.05.20
배열의 순환(forEach, map)  (0) 2020.05.20
배열 정렬하기  (0) 2020.05.19
배열 검색하기  (0) 2020.05.19
배열 요소를 추출하기  (2) 2020.05.19
배열 요소의 추가, 변경, 삭제하기  (0) 2020.05.19
배열 합치기  (0) 2020.05.17
긴 문자열과 여러줄로 된 문자열 사용  (0) 2020.05.16

닫기