⭐️ 객체나 배열의 각 요소를 처리하는 유틸리티 함수
객체 또는 배열에서 각 요소를 반복적으로 처리하는 each 함수를 제공하며, 유효하지 않은 인자가 전달되었을 경우 예외를 발생시키는 재사용 가능한 함수
import { throwTypeError } from "./throwError.js";
import { isArray, isObject, isFunction } from "./typeOf.js";
/**
*
* @param {Array | Object} arrayOrObject 순환할 객체(배열 또는 객체)
* @param {Function} callback 반복 순환 처리할 함수
* @returns {Array} 집합 객체 반환
*/
export function each(arrayOrObject, callback) {
if (!isFunction(callback)) {
throwTypeError("두번째 인자의 유형은 함수만 허용합니다.");
}
if (isArray(arrayOrObject)) {
return arrayOrObject.map(callback);
}
if (isObject(arrayOrObject)) {
return Object.entries(arrayOrObject).map(callback);
}
throwTypeError("첫번째 인자의 유형은 배열 또는 객체만 허용합니다.");
}
이 코드는 주어진 배열 또는 객체를 반복하여, 각 요소를 처리하는 콜백 함수를 적용하는 each 함수를 제공합니다. 이 함수는 인자로 전달된 객체가 배열인지 객체인지를 판별하고, 각각 map() 함수 또는 Object.entries() 메서드를 사용하여 콜백 함수를 적용하고, 처리 결과를 배열로 반환합니다. 이때, 콜백 함수는 필수 인자로 전달되며, 함수가 아닌 경우 throwTypeError() 함수를 사용하여 예외를 발생시킵니다.
'Javascript > 재사용 함수' 카테고리의 다른 글
loop & delay 유틸리티 함수 (0) | 2023.04.04 |
---|---|
Memoization(메모이제이션) 패턴을 구현한 memo 함수 (0) | 2023.04.04 |
throttle, debounce 유틸리티 함수 (0) | 2023.04.04 |
랜덤한 수를 생성하기 위한 유틸리티 함수 (0) | 2023.04.04 |
데이터 유형을 확인하기 위한 여러 가지 유틸리티 함수 (0) | 2023.04.04 |