2019-8-24 개발 이슈 map에 if문 리턴
- Map을 이용해서 배열을 순회하다가 특정 조건에 걸리는 값을 리턴하고 싶었다.
문제
javascript
const checkDomain = (response) => {
const headers = stringToJsonObject(base64ToUtf8(response)).payload.headers;
headers.map((header) => {
if (header.name === 'From') {
console.log(header.value);
return header.value;
}
});
}
- map으로 리스트를 순환하면서 특정 조건에 부합하는 값을 return하고 싶었다. console.log에서는 값이 찍히지만 return은 안된다.
해결
const getDomain = (response) => {
let domain;
const headers = stringToJsonObject(base64ToUtf8(response)).payload.headers;
headers.map((header) => {
if (header.name === 'From') {
domain = header.value;
}
});
return domain;
};
오늘의 느낀점
- 지난번 콜백에서 비슷한 이슈가 생겨서 Promise를 통해 해결했는데, 우선은 function안에 변수를 선언해서 해결을 했다. 좀 더 깔끔한 방법으로 리팩토링을 고민해봐야겠다.
Written on August 24, 2019