【发布时间】:2022-07-14 23:16:06
【问题描述】:
我一直在努力解决这个挑战(在 jschallenger.com 上找到):
- 编写一个以两个字符串(a 和 b)作为参数的函数
- 从“a”的末尾开始,在每个第 3 个字符后插入“b” '一个'
- 返回结果字符串
这是我目前的解决方案(我确信它会起作用):
function insertEveryThree(a, b) {
let arr = a.split('')
for (let i = arr.length - 3; i > 0; i -= 3) {
arr.splice(i, 0, b)
}
return arr.join('')
}
console.log(insertEveryThree('actionable', '-')) // a-cti-ona-ble
console.log(insertEveryThree('1234567', '.')) // 1.234.567
console.log(insertEveryThree('abcde', '$')) // ab$cde
console.log(insertEveryThree('zxyzxyzxyzxyzxyz', 'w')) // zwxyzwxyzwxyzwxyzwxyz
我在哪里失败了?
【问题讨论】:
-
因为
arr.length每次在循环中插入内容时都会发生变化 -
究竟是什么问题?预期的输出是什么?
标签: javascript