🍎 PART.1의 메소드를 이어서 진행한다
collection
에 값이 있는지 확인하는 메소드이다.
기본값을 false
로 두고, true
조건만 설정한다.
// 배열 또는 객체가 주어진 값을 포함하는지 체크합니다. (`===` 연산자를 사용해서 판단합니다.)
_.contains = (collection, target) => {
let isTrue = false;
_.each(collection, (item) => {
item === target && (isTrue = true)
})
return isTrue;
};
every
는 collecion의 모든 요소를 iterator
의 인자로 넘겨 실행된 결과가 모두 true
인지 반환하는 함수.
iterator
가 undefined
인지 아닌지만 잘 구분하면 간단하다.
// 모든 element가 iterator에 의해 truthy한지 체크합니다.
_.every = (collection, iterator) => {
let isTruthy = true;
if(iterator === undefined) {
for(const i in collection) {
!collection[i] && (isTruthy = false);
}
} else {
for(const i in collection) {
!iterator(collection[i], i, collection) && (isTruthy = false);
}
}
return isTruthy;
};
_.every
의 반대다.
기본을 false로 두고 조건이 맞을 경우만 true로 설정한다.
자세한 설명은 생략한다 :)
// element가 하나라도 iterator에 의해 truthy한지 체크합니다.
// iterator가 없다면, element 그 자체가 truthy한지 체크하세요.
_.some = (collection, iterator) => {
let isTruthy = false;
if(iterator === undefined) {
for(const i in collection) {
collection[i] && (isTruthy = true);
}
} else {
for(const i in collection) {
iterator(collection[i], i, collection) && (isTruthy = true);
}
}
return isTruthy;
};