如何实现对象键值对转指定格式字符串?求错误分析与引导
代码错误分析与引导思路
现有代码的核心错误
- 全局变量误用+类型冲突:你在函数外定义了全局的
string数组,紧接着又执行string = string.join(', '),把数组变成了空字符串。之后在函数里调用string.push()时,字符串没有push方法,直接报错。而且全局变量会导致多次调用函数时,之前的结果残留,逻辑混乱。 - 冗余全局变量:开头的
const obj = {}是全局空对象,和函数的参数obj重名,不仅没用还容易造成混淆。 - 返回值逻辑错误:循环里每次都
console.log是多余的,最后返回用string.toString(),但此时string已经被改成字符串了;就算没改,toString()处理数组的逻辑也不如直接用join(', ')精准。
引导修正思路
- 把存储片段的数组放到函数内部,每次调用函数时都创建新数组,避免全局污染。
- 保留
Object.entries遍历键值对的方式(这部分是对的),把每个${key} = ${value}格式的字符串push到内部数组里。 - 循环结束后,用
join(', ')把数组拼接成符合要求的字符串,直接返回这个拼接结果即可。 - 删掉所有函数外的冗余全局变量,避免干扰函数逻辑。
内容的提问来源于stack exchange,提问作者Jupiter
相关产品推荐
相关产品推荐

