재귀 - box in box

김남경·2022년 12월 16일
0

catch errors

목록 보기
8/16

있는지 확인하기

📗 객체 안의 객체

//let name = {
	//title = "x",
    //name = {
    //...
    //}
//}

function x(name, x){
	if(name.title === x) return true;
    //찾으면 여기서 끝
  
  	if(name.name) return x(name.name, title);
  	//truthy는 null과 undefined도 체크됨
  
  	return false;
}

📗 배열 안의 배열

//let array = [a,b,[c,d],e]

function x(array, value){
	for(let item of array){
    	if(item === value) return true
      	//찾으면 여기서 끝
      	
      	if(Array.isArray(item)){
        	if(x(item, value)) return true;
          	//재귀를 바로 리턴하면 그 아이템에서 끝나게 됨
        }
    }
  
  	return false;
}

배열 풀기


function x(array){
	for(let i = 0; i<array.length; i++){
    	if(Array.isArray(array[i])){
        	return x([
              ...array.slice(0,i),
              ...arr[i],
              ...arr.slice(i+1)
            ])
        }
    }
}
profile
기본에 충실하며 앞으로 발전하는

0개의 댓글