如何移除格式化输出中Tabs与Permissions分组每行的末尾逗号?
如何移除格式化输出中Tabs与Permissions分组每行的末尾逗号?
嘿,我明白你遇到的问题了!那些烦人的逗号其实不是来自单个tabName或者permName本身,而是因为你在嵌套使用map之后,直接把数组拼接到字符串里了——当JavaScript把数组转换成字符串时,默认会用逗号分隔每个元素,这就是你看到每行末尾逗号的根源。你之前尝试的split(",").join("\n \n")之所以没用,是因为你在处理单个元素的内容,但问题出在整个map返回的数组转字符串的环节上。
解决这个问题很简单,只需要给每个map调用的结果加上.join(''),手动指定数组转字符串的分隔符为空字符串,就能去掉默认的逗号了。另外你会发现,原来的split(",").join("\n \n")其实是多余的,因为你的tabName和permName本身并没有逗号,完全可以去掉这部分逻辑。
修改后的代码片段如下:
const data = [ { "id": 654298, "included": [ { "id": 654298, "levelColumn": "DIM4_COL5", "levelColumnName": "Region", "isIncluded": true, "tabs": [ { "tabId": 640111, "tabName": "Growth" }, { "tabId": 640031, "tabName": "Direct Sales" }, { "tabId": 640021, "tabName": "Operator Review" } ], "levels": [ { "permValue": "WEST FS", "permName": "WEST FS" } ] } ], "excluded": [] } ]; var formatted = "Included \n" + data.map(c => c.included.map(d => `\nFor Level ${d.levelColumnName} ${d.tabs.map(e => `\n- ${e.tabName}`).join('')} Permissions ${d.levels.map(e => `\n- ${e.permName}`).join('')}\n`)).join(''); console.log(formatted);
运行这段代码后,你得到的输出就会是没有逗号的版本:
Included For Level Region - Growth - Direct Sales - Operator Review Permissions - WEST FS
另外可以再优化一下字符串拼接的可读性,用模板字符串把整个结构整合得更清晰,不过核心解决逗号问题的关键就是给每个map的结果加上.join('')哦!
备注:内容来源于stack exchange,提问作者user8512043
相关产品推荐
相关产品推荐

