
문제를 처음보고 홀수/짝수 번째 인덱스 배열을 돌며 toLowerCase()와 toUpperCase() 문자열 메소드를 사용하면 될 것 같다는 생각이 들었다.
제한 사항을 준 이유에 대해서 생각해봤는데,
우선, 배열의 길이가 0이면 안되는 거니까 1보다 크거나 같다는 인정! 20보다 작거나 같다는 의미는 무엇일까? -> 결국 찾지 못함.
검색하다가 우연히 발견한 배열에 관한 내용
https://velog.io/@redjen/%EB%8B%B9%EC%8B%A0%EC%9D%98-%EB%B0%B0%EC%97%B4%EC%9D%80-%EA%B4%9C%EC%B0%AE%EC%9D%80%EA%B0%80%EC%9A%94
function solution(strArr) {
let answer = [];
for (let i = 0; i < strArr.length; i++) {
if (i % 2 === 0) {
answer.push(strArr.toLowerCase());
} else {
answer.push(strArr.toUpperCase());
}
}
return answer;
}
에러 발생!
answer.push(strArr.toLowerCase());
^
TypeError: strArr.toLowerCase is not a function
엥? 아! strArr에 인덱스 값을 안줬구나! ㅋㅋㅋ
function solution(strArr) {
let answer = [];
for (let i = 0; i < strArr.length; i++) {
if (i % 2 === 0) {
answer.push(strArr[i].toLowerCase());
} else {
answer.push(strArr[i].toUpperCase());
}
}
return answer;
}
모두 통과!
파란색이 아주 보기 좋구만유~!
다른 방법으로 더 쉽게? 더 짧게? 풀 수 있을까?!
개념
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/map
풀이
const solution = (strArr) => strArr.map((currValue, index) => index % 2 === 0 ? currValue.toLowerCase() : currValue.toUpperCase());
개념
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
풀이
const solution = (strArr) => strArr.reduce(
(acc, cur, index) => [...acc, index % 2 === 0 ? cur.toLowerCase() : cur.toUpperCase()], []
)
개념
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
풀이
const solution = (strArr) => {
let answer = [];
strArr.forEach((arr, index) => {
if (index % 2 == 0) {
answer.push(arr.toLowerCase());
} else {
answer.push(arr.toUpperCase());
}
});
return answer;
}