URL 查询参数操作

URL 查询参数转对象

const queryStringToObject = url => Object.fromEntries([...new URLSearchParams(url.split('?')[1])]);

queryStringToObject('https://google.com?page=1&count=10');
// { page: '1', count: '10' }

对象转 URL 查询参数

const objectToQueryString = queryParameters => {
  return queryParameters
    ? Object.entries(queryParameters).reduce(
      (queryString, [key, val], index) => {
        const symbol = queryString.length === 0 ? '?' : '&';
        queryString +=
          typeof val === 'string' ? `${symbol}${key}=${val}` : '';
        return queryString;
      },
      ''
    )
    : '';
};

objectToQueryString({ page: '1', size: '2kg', key: undefined });
// '?page=1&size=2kg'