首页 > 解决方案 > 迭代对象时与字符串一起显示未定义

问题描述

当我尝试迭代对象并且我想将其转换为字符串以附加 URL 时,但未定义与字符串一起显示?

这是我将对象转换为字符串的函数

onFormattedFilterChange(urlParams) {
    let formattedParams;
    Object.keys(urlParams).forEach((item, i) => {
      formattedParams += '&' + item + '=' + urlParams[item];
    });
  }

我的 urlParams 在哪里

{projectType: "FP", status: "COMPLETE", code: "SG", executionType: "INTERNAL"} 

我想要字符串形式的

&projectType=FP&status=COMPLETE&code=SG&executionType=INTERNAL

但不是这个,而是显示

undefined&projectType=FP&status=COMPLETE&code=SG&executionType=INTERNAL

为什么显示未定义?

标签: javascriptarrays

解决方案


正如我在评论中提到的,您需要初始化 formattedParams。

但我建议你使用内置的 URLSearchParams

const urlParams = {"projectType": "FP", "status": "COMPLETE", "code": "SG", "executionType": "INTERNAL"} 

var formattedParams= new URLSearchParams();
for (key in urlParams) {
  formattedParams.append(key, urlParams[key]);
}
console.log(formattedParams.toString())


推荐阅读