Movatterモバイル変換


[0]ホーム

URL:


MDN Web Docs

이 페이지는 영어로부터 커뮤니티에 의하여 번역되었습니다. MDN Web Docs에서 한국 커뮤니티에 가입하여 자세히 알아보세요.

Array.prototype.some()

BaselineWidely available

some() 메서드는 배열 안의 어떤 요소라도 주어진 판별 함수를 적어도 하나라도 통과하는지 테스트합니다. 만약 배열에서 주어진 함수가 true을 반환하면 true를 반환합니다. 그렇지 않으면 false를 반환합니다. 이 메서드는 배열을 변경하지 않습니다.

시도해 보기

const array = [1, 2, 3, 4, 5];// Checks whether an element is evenconst even = (element) => element % 2 === 0;console.log(array.some(even));// Expected output: true

구문

js
// 화살표 함수some((element) => { /* … */ })some((element, index) => { /* … */ })some((element, index, array) => { /* … */ })// 콜백 함수some(callbackFn)some(callbackFn, thisArg)// 인라인 콜백 함수some(function (element) { /* … */ })some(function (element, index) { /* … */ })some(function (element, index, array) { /* … */ })some(function (element, index, array) { /* … */ }, thisArg)

매개변수

  • callbackFn

    • : 배열의 각 요소에 대해 실행할 함수. 이 함수는 요소가 시험을 통과하면참 같은 값을 반환하며, 그렇지 않으면 거짓인 값을 반환합니다.

    다음의 인자와 함께 함수를 호출합니다.

    element

    처리할 배열 내 현재 요소

    index

    처리할 현재 요소의 인덱스

    array

    some을 호출한 배열

  • thisArgOptional

    • :callbackFn을 실행할 때this로 사용하는 값.반복 메소드를 참고하세요.

반환 값

콜백 함수가 적어도 배열 중 하나의 요소에 대해참인 값을 반환하면true를 반환하며, 그렇지 않으면false를 반환합니다.

설명

some 메서드는반복 메서드입니다. 이 메서드는 주어진callbackFn함수가참 같은 값을 반환할 때까지 배열 안에 있는 각각의 요소마다 한 번씩 호출합니다. 만약 그러한 요소를 찾았으면some() 메서드는 그 즉시true를 반환하며 배열 순회를 멈춥니다. 그렇지 않고callbackFn이 모든 요소에 대해거짓같은 값을 반환하면some()false를 반환합니다.

some()은 수학에서 존재 한정자와 같은 역할을 합니다. 특히 빈 배열의 경우 모든 조건에 대해false를 반환합니다.

callbackFn는 값이 할당된 배열 인덱스에서만 실행됩니다.희소 배열의 빈 슬롯에서는 실행되지 않습니다.

some()은 호출된 배열의 값을 변경하지 않지만, 제공된callbackFn에서는 가능합니다. 그럼에도 배열의 길이는callbackFn의 첫 실행 이전에 저정된다는 점을 명심하시기 바랍니다.

  • callbackFnsome() 호출되어 시작할 당시 배열의 초기 길이를 넘어서는 요소는 방문하지 않습니다.
  • 이미 방문했던 인덱스를 변경해도callbackFn은 해당 인덱스에 대해callbackFn을 다시 실행하지 않습니다
  • 만약 존재하나 아직 방문하지 않은 배열의 요소는callbackFn이 변경시킬 수 있습니다. 이 값은callbackFn이 요소에 방문하는 시점에callbackFn에 넘겨지는 값입니다.삭제한 요소는 방문하지 않습니다.

some() 메서드는제너릭입니다.this 값에length 속성과 정수 키 속성만 있으면 됩니다.

예제

배열의 요소 테스트

다음 예제는 배열 내 요소 중 하나라도 10보다 큰지 판별합니다.

js
function isBiggerThan10(element, index, array) {  return element > 10;}[2, 5, 8, 1, 4].some(isBiggerThan10); // false[12, 5, 8, 1, 4].some(isBiggerThan10); // true

화살표 함수를 사용한 배열의 요소 테스트

화살표 함수는 같은 테스트에 대해 더 짧은 구문을 제공합니다.

js
[2, 5, 8, 1, 4].some((x) => x > 10); // false[12, 5, 8, 1, 4].some((x) => x > 10); // true

값이 배열 내 존재하는지 확인

includes() 메서드의 기능을 모방하기 위해 이 사용자 지정 함수는 요소가 배열에 있는 경우true 반환합니다.

js
const fruits = ["apple", "banana", "mango", "guava"];function checkAvailability(arr, val) {  return arr.some((arrVal) => val === arrVal);}checkAvailability(fruits, "kela"); // falsecheckAvailability(fruits, "banana"); // true

어떠한 값이건 불리언으로 변환

js
const TRUTHY_VALUES = [true, "true", 1];function getBoolean(value) {  if (typeof value === "string") {    value = value.toLowerCase().trim();  }  return TRUTHY_VALUES.some((t) => t === value);}getBoolean(false); // falsegetBoolean("false"); // falsegetBoolean(1); // truegetBoolean("true"); // true

희소 배열에 some() 사용하기

some()은 빈 슬롯에 조건자를 실행하지 않습니다.

js
console.log([1, , 3].some((x) => x === undefined)); // falseconsole.log([1, , 1].some((x) => x !== 1)); // falseconsole.log([1, undefined, 1].some((x) => x !== 1)); // true

배열이 아닌 객체에 some() 호출하기

some() 메서드는thislength 속성을 읽고 객체의 마지막에 도달하거나callbackFntrue를 반환할 때 까지 정수 인덱스로 접근합니다.

js
const arrayLike = {  length: 3,  0: "a",  1: "b",  2: "c",};console.log(Array.prototype.some.call(arrayLike, (x) => typeof x === "number"));// false

명세

Specification
ECMAScript® 2026 Language Specification
# sec-array.prototype.some

브라우저 호환성

같이 보기

Help improve MDN

Learn how to contribute.

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp