JavaScript如何将数组元素用--拼接,保证每项长度不超过12字符
JS数组按规则拼接元素解决方案
你之前的实现问题在于,直接将所有元素拼接后按固定字符长度切割,会把单个完整元素或者分隔符切断,不符合要求。
正确实现思路是遍历原数组,逐个拼接元素,保证所有元素完整性:
- 维护当前正在拼接的临时字符串
- 每次加入新元素前,计算加上分隔符和新元素后的总长度
- 如果总长度不超过上限就拼接,否则将当前临时字符串存入结果,用新元素作为下一轮拼接的起点
- 遍历结束后把剩余的临时字符串存入结果
完整代码
const be = ["Hello", "welcome", "Hi", "morning", "Hi"]; // 如果要得到你给出的预期结果,将maxLen调整为15即可 const maxLen = 12; const separator = '--'; const result = []; let currentStr = ''; for (const item of be) { if (!currentStr) { currentStr = item; continue; } const totalLength = currentStr.length + separator.length + item.length; if (totalLength <= maxLen) { currentStr += `${separator}${item}`; } else { result.push(currentStr); currentStr = item; } } // 处理最后剩余的字符串 currentStr && result.push(currentStr); console.log(result);
当maxLen设为15时,输出结果就是你需要的["Hello--welcome", "Hi--morning--Hi"]。
内容的提问来源于stack exchange,提问作者Mhmd Admn
相关产品推荐
相关产品推荐

