Young's Today

자바스크립트 - 메서드 (find / findIndex / every / some) 본문

Coding Language/Javascript

자바스크립트 - 메서드 (find / findIndex / every / some)

Young's Today 2023. 1. 2. 23:59

(1) find

- 배열의 요소를 순차적으로 순회하면서 조건에 일치하는 요소의 값을 즉시 반환

- 조건에 만족하는 값이 여러개가 있더라도 첫번째 값만 확인 가능

- 조건에 일치하는 경우가 없다면 undefinded 반환

arr.find(callback(element, index, array), thisArg)
  • arr : 순회하고자 하는 배열
  • element : 현재 배열 요소
  • index : 현재 배열 요소의 index (생략 가능)
  • array : 함수를 호출한 배열 (생략 가능)
  • thisArg : callback을 실행할 때 this로 사용되는 값 (=map 함수에서 사용될 this값) (생략 가능)

- 예시 (조건에 일치하는 배열이 있는 경우)

let exam = [
 {name: 'A', age: 12},
 {name: 'B', age: 87},
 {name: 'C', age: 42},
 {name: 'D', age: 59},
 {name: 'E', age: 34}
];

let result = exam.find(function(data){
return data.name === 'C'});

console.log(result);

// 출력 { name: 'C', age: 42 }

- 예시 (조건에 일치하는 배열이 없는 경우)

let exam = [
 {name: 'A', age: 34},
 {name: 'B', age: 87},
 {name: 'C', age: 42},
 {name: 'D', age: 59},
 {name: 'E', age: 34}
];

let result = exam.find(function(data){
return data.name === 'H'});

console.log(result);

// 출력 undefinded

- 예시 (동일한 값이 존재하는 경우)

let exam = [
 {name: 'A', age: 34},
 {name: 'B', age: 87},
 {name: 'C', age: 42},
 {name: 'D', age: 59},
 {name: 'E', age: 34}
];

let result = exam.find(function(data){
return data.age === 34
});

console.log(result);

// 출력 {name: 'A', age: 34}

 

(2) findIndex

- 배열의 요소를 순차적으로 순회하면서 조건에 일치하는 요소의 인덱스를 반환

- 조건에 일치하는 경우가 없다면 -1 반환

arr.findIndex(callback(element, index, array), thisArg)
  • arr : 순회하고자 하는 배열
  • element : 현재 배열 요소
  • index : 현재 배열 요소의 index (생략 가능)
  • array : 함수를 호출한 배열 (생략 가능)
  • thisArg : callback을 실행할 때 this로 사용되는 값 (=map 함수에서 사용될 this값) (생략 가능)

- 예시 (조건에 일치하는 인덱스가 있는 경우)

let exam = [
 {name: 'A', age: 34},
 {name: 'B', age: 87},
 {name: 'C', age: 42},
 {name: 'D', age: 59},
 {name: 'E', age: 34}
];

let result = exam.findIndex(function(data){
return data.name === 'E'});

console.log(result);

// 출력 4 
// 4번째 index에 있다는 의미

- 예시 (조건에 일치하는 인덱스가 없는 경우)

let exam = [
 {name: 'A', age: 34},
 {name: 'B', age: 87},
 {name: 'C', age: 42},
 {name: 'D', age: 59},
 {name: 'E', age: 34}
];

let result = exam.findIndex(function(data){
return data.name === 'H'});

console.log(result);

// 출력 -1

 

(3) every

- 주어진 조건을 배연 안의 모든 요소가 통과하는 여부를 불리언 값으로 반환

- 빈 배열에서 호출하는 경우 무조건 true 반환

arr.every(callback(element, index, array), thisArg)​
  • arr : 순회하고자 하는 배열
  • element : 현재 배열 요소
  • index : 현재 배열 요소의 index (생략 가능)
  • array : 함수를 호출한 배열 (생략 가능)
  • thisArg : callback을 실행할 때 this로 사용되는 값 (생략 가능)

- 예시

let arr1 = [1,2,3,4,5];
let arr2 = [2,4,6,8,10];
   
 let exam1 = arr1.every(element => {
  return element % 2 === 0
 })
 console.log(exam1); // 출력 false
    
 let exam2 = arr2.every(element => {
  return element % 2 === 0
 })
 console.log(exam2); // 출력 true

 

(4) some

- 주어진 조건을 배열 안의 어떤 요소라도 통과하는지 테스트하고 그 결과를 불린 값으로 반환

- 빈 배열을 호출하면 무조건 false를 반환

arr.some(callback(element, index, array)[, thisArg])
  • arr : 순회하고자 하는 배열
  • element : 현재 배열 요소
  • index : 현재 배열 요소의 index (생략 가능)
  • array : 함수를 호출한 배열 (생략 가능)
  • thisArg : callback을 실행할 때 this로 사용되는 값 (생략 가능)

- 예시

var arr1 = [1,2,3,4,5];
var arr2 = [1,3,5,7,9];
    
 let exam1 = arr1.some(element => {
 return element % 2 === 0
 })
 console.log(exam1); // 출력 true
    
 let exam2 = arr2.some(element => {
 return element % 2 === 0
 })
 console.log(exam2); // 출력 false