JavaScript如何将对象转换为|分隔的指定格式字符串
问题分析
你写的代码存在以下问题:
- 循环内每次都直接对
finalStr重新赋值,没有拼接之前的内容,最终只会保留最后一个键值对 - 没有按照要求将值包裹在括号中,分隔符
|两侧也缺少空格 - 循环结束后字符串末尾会多出多余的
|分隔符
解决代码
方案1:基于原有for循环逻辑修改
let obj = { test1: 3, test2: 4, test3: 5 }; let finalStr = ""; for (var key in obj) { // 非首个元素前拼接分隔符 if (finalStr) { finalStr += " | "; } finalStr += `${key}(${obj[key]})`; } console.log(finalStr); // 输出 test1(3) | test2(4) | test3(5)
方案2:内置方法实现(更简洁)
用Object.entries获取所有键值对,映射为要求的格式后用join拼接,自动处理分隔符,不会出现末尾多余分隔符的问题:
let obj = { test1: 3, test2: 4, test3: 5 }; let finalStr = Object.entries(obj) .map(([key, value]) => `${key}(${value})`) .join(' | '); console.log(finalStr); // 输出 test1(3) | test2(4) | test3(5)
内容的提问来源于stack exchange,提问作者user13349816
相关产品推荐
相关产品推荐

