티스토리 뷰

728x90
반응형

어떠한 객체 temp_obj에, 특정 key의 value값을 검색해서 boolean값을 반환하고 싶을 때, Javascript의 some() 함수로 쉽게 데이터를 검색할 수 있다.

 

// Test Data
const temp_obj = {
	a : {
    	state : 'ready'
    },
    b : {
    	state : 'ready'
    },
    c : {
    	state : 'complete'
    }
}

 

위와 같은 형식의 객체가 있을 때, temp_obj 안에 각각 들어있는 객체 중 complete가 한개라도 있다면 True를, 아니면 False를 반환하는 함수는 아래와 같다.

 

 // 데이터를 검증하는 함수
  function checkApprovalStatus(data: TDataProps): boolean {
    // 해당 key들의 상태를 확인하여 "승인요청 중"인지 검사
    const isApprovalPending = Object.values(data).some(
      (item : TItemProps) => item?.state === 'complete',
    );

    return isApprovalPending;
  }
 
 ...
 
// 렌더링 시 데이터 검증하여 state에 저장
 useEffect(()=>{
 const temp_obj = {
	a : {
    	state : 'ready'
    },
    b : {
    	state : 'ready'
    },
    c : {
    	state : 'complete'
    }
}
	if(checkApprovalStatus(temp_obj)) setState(true);;
    else setState(false);
    
},[])

 

temp_obj는 당연히 api를 통해 받아오는 데이터일테니

state가 ready에서 complete로 변화될 때 state를 true로 바꾸어주면 된다. 쏘 이지!

728x90
반응형
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함