JavaScript循环迭代太多
javascript loop iterating too much
尝试一个有趣的问题,用行中的下一个元音替换字符串中的元音,又名a->e,e->i,i->o,o->u,不考虑"u"。从数组而不是字符串开始。我的第二个循环(迭代元音数组元素)忽略了我的"j
var vowelChange = function(vowelArray, stringToChange) {
for (var i = 0; i<stringToChange.length; i++) {
for (var j = 0; j<vowelArray.length; j++) {
if (stringToChange[i]===vowelArray[j]) {
var newCharacter = vowelArray[j+1]
stringToChange[i] = newCharacter
i++
}
}
}
return stringToChange
};
我正在使用 node-debug 在浏览器中设置断点,j 在从 0 重新开始之前循环到 5。我得到了正确的输出,但 j 应该停在 4...
编辑
有人可以解释我是如何错误地使用join的,因为我无法让我的函数输出一个字符串而不仅仅是一个数组。
var vowelChange = function(vowelArray, stringToChange) {
for (var i = 0; i<stringToChange.length; i++) {
for (var j = 0; j<vowelArray.length-1; j++) {
if (stringToChange[i]===vowelArray[j]) {
stringToChange[i] = vowelArray[j+1]
break
}
}
}
stringToChange = stringToChange.join('')
return stringToChange
};
var vowels = ['a','e','i','o','u']
var firstName = ['t', 'e', 's', 't']
vowelChange(vowels, firstName)
console.log(firstName)
假设元音数组是 0 索引...
var vowelChange = function(vowelArray, stringToChange) {
for (var i = 0; i<stringToChange.length; i++) {
for (var j = 0; j<vowelArray.length - 1; j++) {
if (stringToChange[i]===vowelArray[j]) {
stringToChange[i] = vowelArray[j+1];
break;
}
}
}
return stringToChange
};
在 JavaScript 中,字符串是不可变的对象,这意味着 其中的字符不得更改,并且对它们的任何操作 字符串实际上会创建新字符串。
因此,如果您尝试更改字符串的任何索引,原始字符串将不会更改
node
> str = "hello this is dummy string";
'hello this is dummy string'
> str[0] = "w";
'w'
> str
'hello this is dummy string'
所以,stringToChange[i] = vowelArray[j+1];
行不通
可以拆分字符串然后加入
var vowelChange = function(vowelArray, stringToChange) {
stringToChange = stringToChange.split('');
for(var i=0; i<stringToChange.length;i++){
for(var j=0;j<vowelArray.length-1;j++){
if(stringToChange[i] == vowelArray[j]){
stringToChange[i] = vowelArray[j+1];
break;
}
}
}
stringToChange = stringToChange.join('');
return stringToChange;
};
例
相关文章:
- jQuery-迭代不正确?(太长,无法执行)
- 通过angularjs迭代多个字典中的键和值
- 在可变长度d3的多维数组上迭代
- 如何根据DB中的值迭代选择并设置多个选项
- JavaScript循环迭代太多
- 使用车把迭代多个对象
- 函数崩溃,因为太多迭代jQuery
- Javascript音频分层eventListener HTML5在多次迭代中失败
- 如何在玉石中迭代多个对象
- javascript中多维数组的迭代器
- 我正试图使用以下语法制作多个数组,但它制作了一个数组,在每次迭代中都会被替换
- 为什么迭代循环次数太多
- javascript类在每次迭代中看到多个DOM?jquery.每个人都很困惑
- jQuery使用不同的参数多次迭代函数
- ArangoDB graph maxDepth - 太多迭代
- 跨多个数组迭代 JS 对象 - 性能
- 使用 Javascript 迭代以 HTML 显示多个图像
- 在输入日期字段的多次迭代中加载日期选取器
- 使用 Node.jS 驱动程序在 MongoDB 中迭代多个集合并比较结果
- 如何使用 D3.js 在带有按钮的一个区域中创建/显示具有相同数据的图表的多次迭代