JavaScript - 배열의 특정 요소 찾기, Index 찾기

배열에서 특정 요소가 있는지 찾거나, 특정 요소의 Index를 찾고 싶을 때 사용할 수 있는 방법을 소개합니다.

1. find()로 배열의 특정 요소 찾기

find()는 인자로 함수를 전달하며, 함수에서 true가 리턴되는 요소를 리턴합니다. 만약 찾지 못하면 undefined가 리턴됩니다.

let arr = ['a', 'b', 'c', 'd', 'e'];

let found = arr.find(element => element == 'c');
console.log(found);

found = arr.find(e => e == 'f');
console.log(found);

Output:

c
undefined

아래와 같이 특정 요소가 배열에 있는지, 없는지 확인할 수 있습니다.

let arr = ['a', 'b', 'c', 'd', 'e'];

if (arr.find(e => e == 'f') == undefined) {
  console.log("Not found");
} else {
  console.log("Found");
}
// output: Not found

2. findIndex()로 특정 요소의 Index 찾기

findIndex()는 배열의 특정 요소를 찾고 그 Index를 리턴합니다. 만약 특정 요소가 없으면 -1을 리턴합니다. 따라서, -1을 리턴하면 특정 요소가 없다고 확인할 수 있습니다.

let arr = ['a', 'b', 'c', 'd', 'c'];

let found = arr.findIndex(e => e == 'c');
console.log(found);

found = arr.findIndex(e => e == 'f');
console.log(found);

Output:

2
-1

아래와 같이 특정 요소가 배열에 있는지, 없는지 확인할 수 있습니다.

let arr = ['a', 'b', 'c', 'd', 'e'];

if (arr.findIndex(e => e == 'f') == -1) {
  console.log("Not found");
} else {
  console.log("Found");
}
// output: Not found

3. filter()로 특정 요소 모두 찾기

find()는 배열의 요소를 순회하면서 조건을 만족하는 요소를 찾고 리턴합니다. 배열에 그 요소가 중복으로 있는지는 알지 못합니다.

filter()를 이용하면 조건에 만족하는 요소들을 모두 찾을 수 있고, 중복 요소가 있는지 알 수 있습니다. 만약 특정 요소가 없다면 빈 배열이 리턴됩니다.

let arr = ['a', 'b', 'c', 'd', 'c'];

let found = arr.filter(e => e == 'c');
console.log(found);

found = arr.filter(e => e == 'f');
console.log(found);

Output:

[ 'c', 'c' ]
[]
Loading script...
codechachaCopyright ©2019 codechacha