5. 객체와 타입 1~3

2020. 7. 13. 15:38Retrospection/Sprint

1. 값이 문자열일 경우 그 값을 제거하는 함수 작성 

function removeStringValues(obj) {
    //속성값이 문자열인 모든 속성 제거 
    //속성값이 문자열일때 그 속성을 제거하는 조건문 작성 
    for(prop in obj){
        if(typeof obj[prop] === "string" ){
            delete obj[prop]
        }
    }
}

for 반복문과 조건문 , typeof 로 함수를 만들어 주었다. 

typeof obj[prop] = 'string' 으로 했었는데 syntax error 가 떴다. 

타입과 값이 정확히 스트링과 일치해야 하기때문에 === 를 쓰는건가 보다 . 

그리고 string 도 type of 를 mdn 에 검색해보니 typeof 를 사용할때 결과값은 항상 스트링값으로 나온다고 나와있었다. 

그래서 그냥 string 이 아닌  "string"  이라고 해주었다. 

 

 

 

2. 속성값의 타입이 숫자일경우 그 속성값을 제거하는 함수 작성 

객체의 타입을 알기위한 방법을 정확히 알고있는것 이문제의 포인트 같다. 

1번문제랑 완전히 같은형식. 

function removeNumberValues(obj) {
    //결과값이 숫자인 속성값을 제거하는 함수 작성 
    // for in 반복문 , if 조건문 , typeof 로 작성하면 될것같음 . 
  for (let prop in obj ){
      if(typeof obj[prop] === "number"){
          delete obj[prop]
      }
  }
}

 

 

 

3.속성값의 타입이 배열인 속성값을 제거하는 함수 작성 

typeof 배열 일 경우 값이 object 가 나오기때문에 

Array.isArray() 를 써주어야 한다. 

1,2 번문제와 완전히 같지만 Array.isArray() 를 사용하는것만 다르다. 

function removeArrayValues(obj) {
  // 속성값이 배열인 속성 제거
  //Array.isArray() 를 사용하여 결과가 true 일때 그값을 제거하는 함수를 작성하면 될 것같다. 
  for(let prop in obj){
      if(Array.isArray(obj[prop])){
          delete obj[prop]
      }
  }
}

 

'Retrospection > Sprint' 카테고리의 다른 글

배열메소드 스프린트 회고하기 11~15  (0) 2020.07.16
배열메소드 스프린트 회고 ( 1- 10 )  (0) 2020.07.16
4. 객체 11~13  (0) 2020.07.12
4.객체 7~10  (0) 2020.07.11
4. 객체 4 ~ 6  (0) 2020.07.07