문자열 배열 strArr가 주어집니다. 모든 원소가 알파벳으로만 이루어져 있을 때, 배열에서 홀수번째 인덱스의 문자열은 모든 문자를 대문자로, 짝수번째 인덱스의 문자열은 모든 문자를 소문자로 바꿔서 반환하는 solution 함수를 완성해 주세요.
1 ≤ strArr ≤ 20
1 ≤ strArr의 원소의 길이 ≤ 20
strArr의 모든 원소는 알파벳 소문자로 이루어져 있습니다.
strArr | result |
---|---|
["AAA","BBB","CCC","DDD"] | ["aaa","BBB","ccc","DDD"] |
["aBc","AbC"] | ["abc","ABC"] |
입출력 예 설명
입출력 예 #1
strArr[0]과 strArr[2]는 짝수번째 인덱스의 문자열이므로 모두 소문자로 바꿔서 "aaa"와 "ccc"가 됩니다.
strArr[1]과 strArr[3]는 홀수번째 인덱스의 문자열인데 원래 대문자이므로 그대로 둡니다.
따라서 ["aaa","BBB","ccc","DDD"]를 return 합니다.
입출력 예 #2
strArr[0]은 짝수번째 인덱스의 문자열이므로 소문자로 바꿔서 "abc"가 됩니다.
strArr[1]은 홀수번째 인덱스의 문자열이므로 대문자로 바꿔서 "ABC"가 됩니다.
따라서 ["abc","ABC"]를 return 합니다.
function solution(strArr) {
let arr = []
for(let i = 0; i < strArr.length; i++){
if(i === 0 || i % 2 === 0){
arr.push(strArr[i].toLowerCase())
}else if(i % 2 !== 0){
arr.push(strArr[i].toUpperCase())
}
}
return arr
}
function solution(strArr) {
return strArr.map((v, i) => i % 2 === 0 ? v.toLowerCase() : v.toUpperCase())
}
연습한다고
function solution(strArr) {
return strArr.map((v, i) => i % 2 === {
0 ? v.toLowerCase() : v.toUpperCase()
})
}
이렇게 작성했더니 통과 되지 못했다.
알고 보니 감싸고 있는 {,}
를 (,)
로 수정하니 통과 됐다.
function solution(strArr) {
return strArr.map((v, i) => i % 2 === (
0 ? v.toLowerCase() : v.toUpperCase()
))
}
또다른 방법은
function solution(strArr) {
return strArr.map((v, i) => i % 2 === {
return 0 ? v.toLowerCase() : v.toUpperCase()
})
}
{, }
로 감쌀 경우 return을 해줘야한다.
이건 아마 화살표 함수 표현에 따라 다른 거 같다.
그러나 역시나 한줄로 작성하는게 제일 깔끔하다.
조건문이 간단하고 한줄인 경우 잘 활용해 보자.
이렇게 하나 또 배워간다.
항상 function으로 함수를 작성했는데 ES6부터 도입된 화살표 함수는 아직 익숙하지 않다.
이번 기회에 많이 사용해 익숙해 지면 좋겠다.
또한 화살표 함수를 작성하면 return
을 생략할 수 있다.