반응형
오늘은 객체의 값을 동적으로 넣어주고 있었다.
동적으로 넣다보니 값이 없을 때는 undefined 가 되었다.
api의 body 에 쓸때없는 property 를 보내주고 싶지 않아 여러 방법을 고민하다가
undifned 값인 properties 만 쏙쏙 골라 제거시키는 함수를 스택오버플로우에서 참고해서 정리해보았다
JavaScript - 객체에서 undefined 값을 제거하기
여기에 쓸때없는 값이 들어간 객체가 있다. 보기만 해도 지저분해서 참을수 없다.
객체 값이 undefined 인 것만 골라서 멀리 쫓아버리자
const obj = {
a: undefined;
b: undfined;
c: '유일한 값',
d: []
e: {
e1: undefined,
e2: undfined,
},
}
undefined 값을 가진 필드를 요렇게 싹 없애버리자
const obj = {
c: '유일한 값',
d: [],
e: {},
}
여기서 핵심은 기존의 객체을 건들이는게 아닌,
임시 객체를 만들고 그 안에 undefined 가 아닌 애들만 추가한뒤, 리턴해주는 방식을 사용하였다.
하지만 객체 안의 객체가 있을 수 있으므로, 그럴때는 재귀함수를 사용하여 해결하였다.
function removeUndefinedValue(obj) {
const newObj = {}; // 빈객체를 만들어놓고
Object.keys(obj).forEach(key => {
// 키 값이 {오브젝트} 인 경우
if (Object.keys(obj[key]).length) {
newObj[key] = removeUndefinedValue(obj[key]); // newObj 안에서 또 재귀함수를 돌리자
}
// 키 값이 그외 값인 경우
else if (obj[key]) {
newObj[key] = obj[key]; // 조건을 통과하면 newObj에 똑같은 키와 값을 채워준다
}
});
return newObj;
}
ref: https://stackoverflow.com/questions/25421233/javascript-removing-undefined-fields-from-an-object
반응형
'JavaScript' 카테고리의 다른 글
JavaScript - 문자열인 숫자 여부 확인하기 (0) | 2022.11.26 |
---|---|
JavaScript - scrollIntoView() 이란 (0) | 2022.11.08 |
JavaScript - 최소공배수 구하기 (0) | 2022.11.03 |
JavaScript - 최대공약수 구하기 (유클리드 호제법) (0) | 2022.11.01 |
JavaScript - 객체 안 배열에 반복문 사용하기 (0) | 2022.10.23 |
댓글