
[ 목표 ]
알고리즘 문제를 풀다가 알게된 some, every 메서드에 대해 학습하고 정리합니다.
[ 알고리즘 문제 ]
https://school.programmers.co.kr/learn/courses/30/lessons/120869
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[ 문제 요약 ]
위 문제는 spell이라는 배열에 명시된 알파벳을 모두 1번씩만 사용하여 나올 수 있는 조합이
dic이라는 배열에 존재하는지에 대한 여부를 찾는 문제입니다.
한개라도 존재하면 1, 아니라면 2를 반환해야합니다.
ex)
spell -> ["p", "o", "s"]
dic -> ["sod", "eocd", "qixm", "adio", "soo"] //
result -> 2 ( 가능한 조합 없음 )
위 문제를 풀고 다른 사람의 풀이를 참고하여 알게된 것이 some() 이었습니다.
한개라도 true라면 true를 반환한다는 점을 이용하여 아래와 같은 코드를 작성할 수 있었습니다.
function solution(p, d) {
return d.some(s => p.sort().toString() == [...s].sort().toString()) ? 1 : 2;
}
[ 메서드 정리 ]
some ( )
: true값 찾는 메서드
: 리턴값이 하나라도 true라면 true를 반환합니다.
: 빈 배열에서 호출하면 false를 반환합니다.
// #1
const array = [1, 2, 3, 4, 5];
const even = (element) => element % 2 === 0;
console.log(array.some(even)); // true
// #2
[2, 5, 8, 1, 4].some((x) => x > 10); // false
[12, 5, 8, 1, 4].some((x) => x > 10); // true
// #3
const fruits = ["apple", "banana", "mango", "guava"];
function checkAvailability(arr, val) {
return arr.some((arrVal) => val === arrVal);
}
checkAvailability(fruits, "kela"); // false
checkAvailability(fruits, "banana"); // true
every ( )
: false값 찾는 메서드
: 리턴값이 모두 true여야 true를 반환합니다.
: 빈 배열에서 호출하면 true를 반환합니다.
// #1
const isBelowThreshold = (currentValue) => currentValue < 40;
const array1 = [1, 30, 39, 29, 10, 13];
console.log(array1.every(isBelowThreshold)); // true
// #2
function isBigEnough(element, index, array) {
return element >= 10;
}
[12, 5, 8, 130, 44].every(isBigEnough); // false
[12, 54, 18, 130, 44].every(isBigEnough); // true
[ 참고 링크 ]
반응형
'Front-end > Javascript' 카테고리의 다른 글
| JS를 다시한번 공부해보자 (0) | 2025.01.17 |
|---|---|
| [ Javascript ] toFixed() 메서드에 대해 알아보자 (0) | 2024.08.12 |
| [ Javascript ] Array Method 정리 (0) | 2024.06.25 |