考虑中文及特殊字符

  1. const obj = { a: 1, b: 2 };
  2. // 输出 a=1&b=2

1 Object.keys

function toQueryString(obj) {
    return (Object.keys(obj).map(key => `${key}=${obj[key]}`)).join('&');
}

2 Object.entries

function toQueryString(obj) {
    return (Object.entries(obj).map(item => `${item[0]}=${item[1]}`)).join('&');
}

3 for in

function toQueryString(obj) {
    const result = [];

  for (const key in obj) {
      result.push(`${key}=${obj[key]}`);
  }
  return result.join('&')
}

4 JSON.stringify

function toQueryString(value) {
  return JSON.stringify(value)
    .replace(/{|}|\"/g, '')
    .replace(/\:/g, '=')
    .split(',')
    .join('&');
}