자바스크립트를 공부하는 중에,
많이 쓰일 것 같아서 정리해 놓으려고 합니다.
많은 분들에게도 참고가 되셨으면 좋겠습니다.
바로 들어갑니다.
배열이 존재합니다.
arr = [1,2,3,4,5,10,23,30,40]
내가 고른 값이 이 배열에 있는 지 확인하고 싶습니다.
예를 들어 내가 선택한 값이 11 이라면
(물론 한 눈에 보기에도 존재하지 않지만 함수로 정리 해 봅시다)
(급하신 분은 맨 밑에 식만 정리 해 놓았으니, 그곳을 참고해주십쇼)
첫번째 방법
for문을 이용하여 찾는 방법
1. 함수를 정의합니다.
function checkArray () {
// TODO
}
2. 대상 배열을 첫번째 매개변수에 지정하고, javascript의 for문을 이용하여 배열 arr을 순회합니다.
function checkArray (arr) {
for(let i = 0; i < arr.length; i++) {
// TODO
}
}
3. 내가 지정한 값을 두 번째 매개변수에 지정하고, TODO안에 대상 배열의 값과 내가 지정한 값을 비교하는 식을 씁니다.
function checkArray (arr , target) {
for(let i = 0; i < arr.length; i++) {
arr[i] === target
}
}
4. 만약 일치하는 값이 있다면 그 값을 리턴값으로, 없다면 -1 을 내보내도록 하는 식을 추가기재한다.
function checkArray (arr , target) {
for(let i = 0; i < arr.length; i++) {
if (arr[i] === target) {
return arr[i] // 대상 배열에 내가 고른 값이 있다면 그 값을 리턴
}
}
return -1 // 없다면 -1을 리턴
}
끝! 확인 한번 해봅시다!
arr = [1,2,3,4,5,10,23,30,40]
이고 내가 고른 값이 11 이었으니

-1이 나오는 걸 확인 할 수 있었습니다.
만약 내가 고른 값이 23 이라면 ?

배열안에 들어있기 때문에 그 값이 리턴되어 나오는 걸 확인 할 수 있었습니다!
두번째 방법(indexOf)
배열의 프롤토타입중 indexOf라는 메서드를 이용하여 찾는 방법입니다.
이것은 배열안의 값과 내가 고른 값을 비교하여 존재하면 그 인덱스를,
존재하지 않으면 -1을 반환합니다
바로 식을 작성 해 보도록 하겠습니다
function checkArray (arr, target) {
const index = arr.indexOf(target); // indexOf를 이용하여 배열의 값에 내가 고른 값이 있는지 비교합니다
return index !== -1 ? arr[index] : -1; // 만약에 존재하면 그 값을, 존재하지 않으면 -1을 반환
}
이것도 확인을 해보면,

31은 arr배열 안에 존재하지 않으므로 -1을 반환,
40은 arr배열 안에 존재하므로 40을 반환하는 것을 볼 수 있습니다.
세번째 방법(includes)
마지막으로 includes를 이용하여 찾는 방법인데
이 메서드도 비슷하게 배열안의 값과 내가 정한 값을 비교합니다.
function checkArray (arr, target) {
return arr.includes(target) ? target : -1;
// 삼항연산자를 이용하여 arr 값 안에 내가 고른 값이 있으면 그 값을, 없으면 -1을 반환
}
식이 훨씬 줄어든 걸 볼 수 있습니다.

정리
1.
function checkArray (arr , target) {
for(let i = 0; i < arr.length; i++) {
if (arr[i] === target) {
return arr[i] // 대상 배열에 내가 고른 값이 있다면 그 값을 리턴
}
}
return -1 // 없다면 -1을 리턴
}
2.
function checkArray (arr, target) {
const index = arr.indexOf(target); // indexOf를 이용하여 배열의 값에 내가 고른 값이 있는지 비교합니다
return index !== -1 ? arr[index] : -1; // 만약에 존재하면 그 값을, 존재하지 않으면 -1을 반환
}
3.
function checkArray (arr, target) {
return arr.includes(target) ? target : -1;
}
식은 다르지만, 같은 결과를 내보내는 것을 확인 할 수 있었습니다.
혹시 배열을 비교해야 할 필요가 있을 때 참고가 될 것 같습니다. 감사합니다!
'자바스크립트' 카테고리의 다른 글
자바스크립트 Array 파괴적 비파괴적 메서드 (0) | 2023.04.15 |
---|---|
자바스크립트에서 Ajax 사용 기본 (0) | 2023.04.15 |
JavaScript에서 객체 복사에 JSON 을 사용하는 시대는 끝났다! (0) | 2023.04.14 |
new Date()로 현재 날짜 시간을 취득 해 보자! (0) | 2023.04.14 |
자바스크립트로 거듭제곱 하기 (공부) (0) | 2023.03.24 |