728x90
Array.some()
some() 메서드는 배열의 요소 중 적어도 하나가 주어진 판별 함수를 통과하는지 확인합니다.
조건을 만족하는 요소가 하나라도 있으면 true를 반환, 없으면 false를 반환합니다.
배열 자체를 변경하지 않습니다.
// 화살표 함수
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) { /* … */ }, thisArg)
매개변수:
- callbackFn:
- 배열의 각 요소에 대해 실행되는 함수.
- 인자:
- element: 현재 요소.
- index: 현재 요소의 인덱스.
- array: some()을 호출한 배열.
- thisArg (선택):
- callbackFn을 실행할 때 사용할 this 값.
반환값:
- 배열의 요소 중 하나라도 callbackFn에서 참(true)을 반환하면 true.
- 모든 요소가 거짓(false)일 경우 false.
특징
- 순회 멈춤:
조건을 만족하는 요소를 찾으면 바로 순회를 멈추고 true를 반환합니다. - 희소 배열 지원:
값이 없는 빈 슬롯은 무시됩니다. - 배열의 원본 유지:
배열을 변경하지 않습니다. - 일반 객체에서도 사용 가능:
배열이 아닌 객체에서도 Array.prototype.some을 호출하여 사용할 수 있습니다. (길이와 키 속성만 있으면 됨)
// 조건 테스트:
[2, 5, 8, 1, 4].some((x) => x > 10); // false
[12, 5, 8, 1, 4].some((x) => x > 10); // true
// 값 포함 여부 확인:
const fruits = ["apple", "banana", "mango"];
fruits.some((fruit) => fruit === "banana"); // true
fruits.some((fruit) => fruit === "grape"); // false
// 불리언 변환:
const TRUTHY_VALUES = [true, "true", 1];
function getBoolean(value) {
return TRUTHY_VALUES.some((t) => t === value);
}
getBoolean("true"); // true
getBoolean("false"); // false
// 희소 배열 사용:
console.log([1, , 3].some((x) => x === undefined)); // false
// 배열이 아닌 객체에서 사용:
const arrayLike = { length: 3, 0: "a", 1: "b", 2: "c" };
Array.prototype.some.call(arrayLike, (x) => x === "b"); // true
정규표현식 (RegExp)
문자열을 검사하거나 처리할 때 사용되는 도구로 특정 패턴과 일치하는 텍스트를 탐색, 대체할 수 있으며, 효율적인 문자열 처리를 제공합니다.
정규표현식 생성 방법
- 리터럴 표기법
- /패턴/플래그
- 예: /abc/i
- RegExp 생성자 사용
- new RegExp('패턴', '플래그')
- 예: new RegExp('abc', 'i')
- 백슬래시 사용
- 특정 문자(+, * 등)를 사용하려면 백슬래시(\)를 붙여야 합니다.
- 예: /a\+/와 new RegExp('a\\+')는 동일한 표현.
정규표현식 메서드
- test 메서드
- 문자열이 정규 표현식과 일치하는지(오름차순 알파벳) 확인하여 true나 false를 반환.
console.log(/abc/.test("abcde")); // true console.log(/abc/.test("abxde")); // false
메타 문자
- 정규표현식에서 자주 사용하는 메타 문자:
- \d : 숫자 (0-9)
- \w : 영숫자 (a-z, A-Z, 0-9, _)
- \s : 공백 문자 (스페이스, 탭, 줄 바꿈)
- \D : 숫자가 아닌 문자
- \W : 영숫자가 아닌 문자
- \S : 공백이 아닌 문자
- . : 개행 문자를 제외한 모든 문자
범위 지정
- [0-9]와 같이 대괄호([]) 안에서 하이픈(-)을 사용해 범위를 지정.
예: /[a-z]/는 모든 소문자 알파벳과 일치.
ex)
숫자 포함 여부 확인
console.log(/[0-9]/.test("Hello123")); // true
console.log(/[0-9]/.test("Hello")); // false
특정 단어 포함 확인
console.log(/hello/i.test("Hello World")); // true (대소문자 무시)
복잡한 패턴 찾기
- 이메일 주소 확인:
let emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
console.log(emailRegex.test("example@mail.com")); // true
console.log(emailRegex.test("not-an-email")); // false
문자열 대체
let result = "2024-12-17".replace(/-/g, "/");
console.log(result); // "2024/12/17"
참고
some() : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/some
정규식 메타 문자 : http://www.ktword.co.kr/test/view/view.php?no=5851
정규식 : https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test
'TIL,WIL' 카테고리의 다른 글
DNS (1) | 2024.12.18 |
---|---|
socket.io (1) | 2024.12.16 |
wil - 12.13 (0) | 2024.12.13 |
TIL 241213 (1) | 2024.12.13 |
TIL241212 (0) | 2024.12.12 |