Javascript 如何更改此字符串中字母的形式?

Javascript 如何更改此字符串中字母的形式?,javascript,Javascript,我想将字符串“hello”改为“hello”,这是索引中唯一的偶数,改为大写字母 源代码: function toWeirdCase(s){ var str = s.split(''); // var str = {'h','e','l','l','o'} for(var i = 0; i<str.length; i++){ if(str.length[i]%2===0){ return str.toUpperCase(); } } } co

我想将字符串“hello”改为“hello”,这是索引中唯一的偶数,改为大写字母

源代码:

function toWeirdCase(s){
 var str = s.split(''); // var str = {'h','e','l','l','o'}
 for(var i = 0; i<str.length; i++){
    if(str.length[i]%2===0){
        return str.toUpperCase();
    }
   }
  }

console.log(toWeirdCase('hello'))
function-towerbirdcase(多个){
var str=s.split(“”);//var str={'h','e','l','l','o'}

对于(var i=0;i您可以执行以下操作:

function-towerbirdcase(多个){
var str=s.split(“”);//var str={'h','e','l','l','o'}
对于(变量i=0;iconsole.log(towerdcase('hello'))
您可以使用正则表达式替换
,将具有奇数索引的每个字母转换为大写:

function-towerbirdcase(多个){
返回s.replace(//g,(m,i)=>i%2?m.toUpperCase():m);
}

console.log(towerdcase('hello');
if条件从未执行。
str.length[i]%2===0
没有意义。
str.length[i]
应该是什么意思?
返回s.split(“”)。map((c,i)=>i%2?c.toupercase():c.toLowercase()).join(“”);
代码的问题是
str length[i]%2===0
从来都不是真的…因此,函数不返回任何内容,因此它与
返回未定义的内容相同-但是,“条件”并不是唯一的问题。因为,如果您解决了这个问题,那么函数将返回
str.toUpperCase()
第一次该条件为真时,您只需处理部分输入字符串,然后
str
是一个数组,它没有
toUpperCase
方法,因此您会在控制台中出现错误。基本上从
if
到结束
}
错误感谢您现在我了解了错误的原因从原始代码判断,您想测试
I%2===0
-编辑:无需担心,刚刚看到了预期的输出:pYeah..但这将导致
HeLlo
而不是
HeLlo
。我会在注释中添加此内容:)不,一切都好,你的代码很好--原来的代码错得太厉害了,毫无意义