2017-01-03 4 views
0

나는 이것에 초보자이기 때문에 Javascript에있는 나의 부호에 조금 도움을 필요로한다. 문자열 입력을 읽고 문자열의 홀수 색인 문자를 upperCase로, 짝수 문자를 lowerCase로 변환하는 함수를 만들어야합니다.자바 스크립트에서 문자열의 홀수 및 짝수 인덱스 문자를 대문자/소문자로 변환 하시겠습니까?

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

내가 뭔가 잘못하고있는 것을 알고 있지만 어떻게 수정해야하는지 알 수 없습니다. 도와주세요? 자바 스크립트에서

+1

가능한 중복을 [자바 스크립트 문자열을 변경할 수 있습니까? JavaScript에서 "문자열 작성기"가 필요합니까?] (http://stackoverflow.com/questions/51185/are-javascript-strings-immutable-do-i-need-a-string-builder-in-javascript) –

+0

RegExp alternative https://stackoverflow.com/a/47460488/1383168 – Slai

답변

0

이 시도 :의

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; 
} 
+0

감사합니다! 이것은 나를 위해 완벽하게 일했습니다! 내 코드로 그렇게 멀리 떨어져 있지 않았다! – Ann0nym

+0

당신은 멀리 떨어져 있지 않았습니다. 다른 주석에서 언급했듯이 JS의 문자열은 "변경 불가능"합니다. 즉, 변수를 새 변수 (또는 자체)에 할당하지 않고 메모리에서 변경할 수 없으므로 문자열 내에 문자를 설정할 수 없습니다 있었다. 그것은 당신의 방법에 대한 유일한 문제였습니다. –

0

문자열은 불변, 대신을 시도해보십시오

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(''); 
 
}

2
function alternativeCase(string){ 
    return string.split('').map(function(c,i) { 
    return i & 1 ? c.toUpperCase() : c.toLowerCase(); 
    }).join(''); 
} 
관련 문제