함수형코딩 359~383

빵동·2023년 4월 26일

함수형코딩 (완독)

목록 보기
22/29

함수형코딩 359~383 (32,33일차)

  • 객체 업데이트 하기
    배열과 같은 방법으로 조회, 변경, 반환 순으로 작업한다.
function update(object, key, modify){
 const value = object[key]
 const newValue = modify(value)
 const newObject = ObjectSet(object, key, newValue);
  return newObject  
}

중첩된 Object의 경우 조회1-조회2-변경-설정2-설정1 순서로 작업한다.

조회1-조회2-변경-설정2-설정1 해당 부분에서
조회1-조회2-변경-설정2-설정1 안쪽 조회 변경 설정을 update함수로 감싸준다.

function nestObject(){
 return update(){
	return update()   
 }

}

  • nestUpdate만들기
function nestedUpdate(object, keys, modify){
 if(keys.length === 0){
 	return modify(object)
 }
 const key1 = keys[0];
 const restOfkeys = drop_first(keys);
 
 return update(object, key1, function(value1){
  return nestedUpdate(value1, restOfkeys, modify); 
 }
  
}

안전한 재귀 사용법
1. 종료 조건
2. 최소 하나의 재귀 호출
3. 종료 조건에 다가가기

0개의 댓글