将字符串中的奇数和偶数索引字符转换为 Javascript 中的 uppercase/lowercase?

Converting Odd and Even-indexed characters in a string to uppercase/lowercase in Javascript?

我需要创建一个函数来读取字符串输入并将字符串中的奇数索引字符转换为大写,将偶数字符转换为小写。

function alternativeCase(string){
    for(var i = 0; i < string.length; i++){
        if (i % 2 != 0) {
            string[i].toUpperCase();
        }
        else {
            string[i].toLowerCase();
        }   
    }
    return string;
}

如何修复我的代码?

JavaScript 中的字符串是不可变的,试试这个:

function alternativeCase(string){
     var newString = [];
     for(var i = 0; i < string.length; i++){
        if (i % 2 != 0) {
           newString[i] = string[i].toUpperCase();
        }
        else {
           newString[i] = string[i].toLowerCase();
        }   
     }
   return newString.join('');
}

试试这个:

function alternativeCase(string){
    var output = "";
    for(var i = 0; i < string.length; i++){
        if (i % 2 != 0) {
            output += string[i].toUpperCase();
        }
        else {
            output += string[i].toLowerCase();
         }   
    }
    return output;
}
function alternativeCase(string){
  return string.split('').map(function(c,i) {
    return i & 1 ? c.toUpperCase() : c.toLowerCase();
  }).join('');
}

2019 年更新

如今使用 ES6 语法非常安全:

const alternativeCase = string => string.split('')
  .map((c,i) => i & 1 ? c.toUpperCase() : c.toLowerCase()).join('');

处理字符之间 space 的 RegExp 替代方案:

const alternativeCase = s => s.replace(/(\S\s*)(\S?)/g, (m, a, b) => a.toUpperCase() + b.toLowerCase());

console.log( alternativeCase('alternative Case') )