이번 포스트에서는 JavaScript의 array.some()
메서드에 대해 알아보려 한다.
해당 메서드는 배열의 요소 중 하나 이상이 주어진 조건을 만족하는지 확인하는 데 유용하다.
array.some()
메서드의 정의array.some()
메서드는 배열 내의 어떤 요소라도 주어진 판별 함수를 통과하는지 테스트한다.
만약 한 요소라도 조건을 만족하면 true
를 반환하고, 모든 요소가 조건을 만족하지 않으면 false
를 반환한다.
array.some(callback(element, index, array), thisArg);
some
을 호출한 배열.callback
을 실행할 때 this
로 사용할 값.true
를 반환하고, 그렇지 않으면 false
를 반환한다.배열 내에 짝수 요소가 있는지 확인:
let numbers = [1, 2, 3, 4, 5];
let hasEvenNumber = numbers.some(function(number) {
return number % 2 === 0;
});
console.log(hasEvenNumber); // true
특정 조건을 만족하는 객체가 있는지 확인:
let people = [
{ name: "Alice", age: 25 },
{ name: "Bob", age: 30 },
{ name: "Charlie", age: 35 }
];
let hasPersonOver30 = people.some(function(person) {
return person.age > 30;
});
console.log(hasPersonOver30); // true
화살표 함수와 함께 사용:
let fruits = ["apple", "banana", "mango"];
let hasBanana = fruits.some(fruit => fruit === "banana");
console.log(hasBanana); // true
thisArg
사용:
let validator = {
minLength: 3,
isValid(string) {
return string.length >= this.minLength;
}
};
let strings = ["hi", "hello", "hey"];
let hasValidString = strings.some(function(string) {
return this.isValid(string);
}, validator);
console.log(hasValidString); // true
some
메서드는 빈 배열에서 호출될 때 항상 false
를 반환한다.callback
함수는 배열 요소에 대해 true
를 반환하는 즉시 실행을 중단하고 true
를 반환한다.callback
함수는 배열 요소를 변형하지 않지만, callback
함수의 실행 중에 배열이 변형되면 some
메서드의 동작에 영향을 줄 수 있다.사용자 입력 검증:
let userInputs = ["", null, "hello"];
let hasValidInput = userInputs.some(input => input !== null && input.trim() !== "");
console.log(hasValidInput); // true
특정 권한을 가진 사용자 찾기:
let users = [
{ username: "admin", roles: ["admin", "user"] },
{ username: "guest", roles: ["guest"] },
{ username: "user1", roles: ["user"] }
];
let hasAdmin = users.some(user => user.roles.includes("admin"));
console.log(hasAdmin); // true
상품 할인 여부 확인:
let products = [
{ name: "Product 1", discount: 0 },
{ name: "Product 2", discount: 10 },
{ name: "Product 3", discount: 0 }
];
let hasDiscountedProduct = products.some(product => product.discount > 0);
console.log(hasDiscountedProduct); // true
array.some()
메서드는 배열 내의 요소 중 하나라도 주어진 조건을 만족하는지 확인하는 데 매우 유용하다.
이 메서드를 잘 활용하면 조건에 따라 배열 요소를 간편하게 확인하고 처리할 수 있다고 생각한다.