【发布时间】:2019-10-23 14:23:08
【问题描述】:
我正在编写一个函数来更改字符串中的字母(转换为驼峰式),并且破折号和下划线用作单词结尾的标记。我想知道为什么我的 for 循环在到达数组末尾之前就停止了,特别是因为没有使用条件代码。
我已尝试在控制台记录我的 tmp 数组,它包含我想要的内容(“_”或“-”)。但是在条件之后代码似乎搞砸了,所以我认为它与此有关。
for (let letter of arr) {
arr.pop(letter)
if (letter === '-' || letter === '_') {
let tmp = []
tmp.push(letter)
console.log(tmp)
} else {
camelArr.push(letter)
console.log(camelArr)
}
}
【问题讨论】:
-
arr.pop()- 在遍历数组时,您正在从数组中删除项目。 -
pop()删除项目,因此长度减少。如果您使用其他方法删除不同的项目,也会出现这种情况。你不需要pop()/push() -
您不应该在使用循环对其进行迭代时修改集合,而应使用
filter、map等函数 -
arr.pop(letter)没有意义 -
谢谢你说得有道理!
标签: javascript arrays loops if-statement