JavaScript/JavaScript 문법

[JavaScript]배열에서 특정 조건을 만족하는지 체크하는 some 함수

DevStory 2021. 8. 17.

JavaScript에서 some 함수는 배열의 요소를 순차적으로 순회하면서 특정 조건을 만족하는지 체크합니다.

 

만족하는 요소가 하나라도 있을 경우 true를 그 외에는 false를 반환합니다.

 


some 함수 구문 및 매개변수

arr.some(callback(element, index, array), thisArg)

arr

- 순회하고자 하는 배열

 

element

- 현재 배열의 요소

 

index(생략 가능)

- 현재 배열 요소의 index

 

array(생략 가능)

- some 함수를 호출한 배열

 

thisArg(생략 가능)

- callback 함수를 실행할 때, this로 사용되는 값(= some 함수에서 사용될 this 값)


some 함수의 특징

  • true를 만족하는 요소를 찾을 때까지 callback 함수를 실행합니다.
  • 만족하는 요소가 없거나 빈 배열인 경우 false를 반환합니다.
  • 배열의 요소가 삭제되었거나 할당한 적이 없는 인덱스는 callback 함수를 호출하지 않습니다.
  • 원래 배열의 값을 변경하지 않습니다.
  • 처리하는 요소의 범위는 callback 함수의 첫 호출 전에 설정됩니다.

배열 요소에서 10보다 큰 값이 있는지 체크

var arr = [10, 5, 20, 1];
var someResult;

someResult = arr.some(function(data) {
  return data > 10;
})

console.log(someResult);
// true

 

만약, 빈 배열에서 some 함수를 호출하거나 만족하는 값이 없을 경우 false를 반환합니다.

var arr = [10, 5, 20, 1];
var someResult;
var arrSomeResult;

someResult = [].some(function(data, idx) {
  return data > 10;
})

console.log(someResult);
// false

arrSomeResult = arr.some(function(data, idx) {
  return data > 20;
})

console.log(arrSomeResult);
// false

 

some 함수에서 callback 함수는 3번 호출됩니다.

배열 arr의 2번째 인덱스의 값인 20이 10보다 크기 때문에 true를 반환하고 some 함수는 종료되었습니다.

var arr = [10, 5, 20, 1];
var someResult;

someResult = arr.some(function(data, idx) {
  console.log(idx + 1 + '번 호출');
  return data > 10;
})

console.log(someResult);

실행 결과


callback 함수를 화살표 함수로 사용

배열 요소에서 10보다 큰 값이 있는지 체크하는 코드를 화살표 함수를 사용하였습니다.

var arr = [10, 5, 20, 1];
var someResult;

someResult = arr.some((data) => data > 10)

console.log(someResult);
// true

 

반응형

댓글