반응형

예전에 fetch로 form data 보내기 글에서 오브젝트를 쿼리 스트링으로 변환하는 방법으로 URLSearchParams를 소개한 적이 있다.

const objectToQueryString = (object) => new URLSearchParams(object).toString();

최근에 반대로 쿼리 스트링을 오브젝트로 변환할 일이 있어서 찾아봤더니 굉장히 간단했다.

const queryStringToObject = (queryString) => Object.fromEntries(
  new URLSearchParams(queryString)
);

Object.fromEntries는 [key, value] 형태가 들어있는 배열을 object로 만들어 준다. 사실 URLSearchParams에 entries() 메소드가 있는데 얘가 URLSearchParams를 [key, value] 배열이 들어있는 배열을 반환한다. (물론 정확히는 배열이 아니라 이터레이터긴 하다) 근데 굳이 안 써줘도 작동함.

반응형

+ Recent posts