나는 다음과 같은 간단한 기능이 있습니다 배열의 각 요소를 통해 이동하도록되어지도 메서드가 배열을 변경하지 못하는 이유는 무엇입니까?
function shiftCase2(string) {
temp = string.split('');
temp.map(function(x) {
if (x == x.toUpperCase()) {
x = x.toLowerCase();
}
if (x == x.toLowerCase()) {
x = x.toUpperCase();
}
})
temp = temp.join("");
console.log(temp);
}
를하고, 문자가 대문자 인 경우는 소문자와 그 반대로 변경합니다. 예를 들어 shiftCase2("TEST string to USE");
은 나에게 "test STRING TO use"
을 제공해야합니다.
나는 그것이 작동하지 않는 이유를 알 수없고 내 입력을 원래대로 되돌립니다.
'.map()'새로운 배열을 만듭니다 – Satpal
이걸위한 dupetarget이 있어야합니다 ... –
'x'는 문자 (기본 유형)이므로 ** 참조에 의해 ** 값 **에 의해 전달됩니다 **. 게다가 이것은'map'의 유스 케이스가 아닙니다 ('map' 콜백은 결과로 새로운 배열에 저장 될 새로운 아이템을 리턴해야합니다). –