아래 링크의 강의 중 Section 3. String Reversal
의 내용을 추려 이번 글을 작성하였습니다.
The Coding Interview Bootcamp: Algorithms + Data Structures on Udemy
function reverse(str) {
let arr = [];
for (let i = str.length - 1; i >= 0; --i) {
arr.push(str[i]);
// i = 3 2 1 0
}
// arr = ["d", "c", "b", "a"];
return arr.join("");
}
console.log(reverse("abcd"));
arr
선언str
을 맨 끝에서부터 탐색하며 마지막 문자부터 차례대로 arr
에 push
하는 for loop
작성arr
를 join()
로써 하나의 문자열로 만든 다음 결과값을 return
function reverse(str) {
return str.split("").reverse().join("");
// str.split = ["a", "b", "c", "d"]
// str.split.reverse() = ["d", "c", "b", "a"]
}
console.log(reverse("abcd"));
str
을 split()
로 쪼개서 배열로 만들기reverse()
로써 앞서 쪼갠 배열 역순 정렬join()
으로 배열을 하나의 문자열로 만들고 결과값 반환function reverse(str) {
let reversed = "";
for (let i = 0; i < str.length; ++i) {
reversed = str[i] + reversed;
// reversed = "a"
// reversed = "ba"
// reversed = "cba"
// reversed = "dcba"
}
return reversed;
}
console.log(reverse("abcd"));
function reverse(str) {
let reversed = "";
for (let character of str) {
reversed = character + reversed;
// reversed = "a"
// reversed = "ba"
// reversed = "cba"
// reversed = "dcba"
}
return reversed;
}
console.log(reverse("abcd"));
reversed
선언for loop
을 통해 문자열 str
을 첫째값부터 탐색하며 index number
오름차순으로 reversed
에 붙여넣기function reverse(str) {
return str.split("").reduce((rev, char) => char + rev, "");
}
console.log(reverse("abcd"));
str
을 split()
으로 쪼개서 배열로 만들기reduce()
method로 str
를 탐색하며 현재값 char
를 이전 값 rev
앞에 차례대로 더해간다.array.reduce((previousValue, currentValue, currentIndex, array) => {}, initailValue);
reduce()
는 총 4가지 argument
를 받는다.
previousValue
: initialValue
가 정의되어 있으면 initialValue
를 첫 번째값으로 호출하고 아니라면 array[0]
을 호출한다.currentValue
: initialValue
가 정의되어 있으면 array[0]
을 호출하고 아니라면 array[1]
을 호출한다currentIndex
: array
에서 currentValue
의 index
. initialValue
가 정의되어 있으면 0
, 아니라면 1
을 첫 번째값으로 호출한다.array
: 탐색을 실행할 배열.initialValue
는 Optional value
임.