JavaScript中如何将索引对象转换为无分隔符连续字符字符串
问题描述
我有一个名为result的对象,结构如下:
0: "X" 1: "S" 2: "Z" 3: "C" 4: "W" 5: "X" 6: "M" 7: "A" 8: "D" 9: "V" 10: "M" 11: "F" 12: "I" 13: "H"
需要将该对象转换为形如XSZCWXMADVFIH的连续字符字符串。之前尝试使用JSON.stringify()方法转换,返回结果格式如下:
["X","S","Z","C","W","X","M","A","D","V","M","F","I","H"]
无法得到无分隔的目标连续字符串,求正确实现方案。
解决方案
JSON.stringify()的作用是将JavaScript值序列化为标准JSON格式字符串,本身会保留数组的方括号、字符串元素的引号以及元素间的逗号分隔符,并不适用于这类元素拼接场景。
你的result是数字索引从0开始递增的类数组结构,直接调用数组原生的join方法即可实现需求:
- 如果
result本身是标准数组类型,直接传入空字符串作为分隔符调用join:
const targetStr = result.join('')
- 如果
result是键为数字索引的普通对象(非真实数组),可先转换为数组再执行拼接:
// ES6及以上运行环境支持的写法 const targetStr = Array.from(result).join('') // 兼容低版本JS环境的写法 const targetStr = Array.prototype.slice.call(result).join('')
原理说明:
join()方法的入参为数组元素拼接时插入的分隔符,传入空字符串时,所有元素会直接首尾相连,不会插入任何额外字符,最终输出的就是你需要的无分隔连续字符串。
内容的提问来源于stack exchange,提问作者kammy
相关产品推荐
相关产品推荐

