Retrospection/Sprint
5. 객체와 타입 1~3
카트먼
2020. 7. 13. 15:38
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]
}
}
}