如何迭代对象

分享于2022年10月08日 angular javascript typescript 问答
【问题标题】:How to iterate over object如何迭代对象
【发布时间】:2022-09-30 21:13:56
【问题描述】:

我有一个这样的对象:

  const params = {
     \'userId[]\': [1, 2],
     \'empId\': 2,
     advance: \'hello\',
     };

我想做一个这样的字符串:

userId[]=1&userId[]=2&empId=2&advance=hello

我正在尝试这样:

 const myResult = Object.entries(params)
 .map(([key, value]) => {
  if (Array.isArray(value)) {
    let result;
    value.forEach(item => {
    `${key}=${value}`
    })
    return result
  }
 // return 
 })
 .join(\'&\');

 console.log(myResult);

但无法弄清楚下一步该做什么。


【解决方案1】:

通过一些更改,添加连接和非数组值:

const params = {
  "userId[]": [1, 2],
  empId: 2,
  advance: "hello",
}

const myResult = Object.entries(params)
  .map(([key, value]) => {
    // Assume non-array result as default
    let result = `${key}=${value}`

    if (Array.isArray(value)) {
      // Override for arrays
      const r = value
        .map((item) => {
          return `${key}=${item}`
        })
        .join("&")

      result = r
    }

    return result
  })
  .join("&")

console.log(myResult)

【讨论】: