✨ 배열(array)의 순서를 정반대로 뒤바꾸고 싶을 때 사용하는 helper method
(e.g., arr.reverse()) 왼쪽처럼 배열 arr 변수가 있을 때, reverse() 를 이용하여 배열 순서를 정반대로 뒤바꿀 수 있다. Reverse Int(숫자 거꾸로 바꾸기), Reverse String(문자열 거꾸로 바꾸기) 그리고 Palindrome(회문 구조) Algorithm에서 유용하게 사용했다.
💻Example Code
const arr = [ 'a', 'b', 'c' ];
console.log( arr.reverse() );
실행 결과(순서가 정반대로 뒤바뀜)
😋 Reverse Int(or String)은 말 그대로 순서를 뒤바꿔 줘야하기 때문에 reverse()는 매우 유용하며, palindrome(회문 구조)는 순서가 뒤바뀌어도 같아야하기 때문에 역시 reverse()는 매우 유용하다.
😢 reverse int and string에서 배웠던 Skill로도 충분했지만, 다른 방법을 적용해보고 싶었다.
😊 every()를 이용하여 주어진 string argument를 검사하는 방식을 배울 수 있었다.
✔ Array.prototype.every()
every() 괄호 안에 test function을 작성하여, 해당 array값을 이용해 test할 수 있다. 위의 소스코드에서는 char === str[str.length - i - 1]을 이용하여 맨 앞과 맨 뒤의 값을 하나씩 이동하며 비교하였다. 자세한 every() 사용법은 helper methods category에서 다루도록 하겠다.
😢 정반대로 바꾸는 것은 문제가 없었으나, 부호를 살리는 것과 다시 num type 으로 바꾸는 것에 대해서 어떻게 효율적으로 코드를 작성할 수 있을지 조금 고민을 했다.
😊 Math.sign()을 이용해 깔끔하게 부호를 살릴 수 있었고, Reverse String에서 쓰던 Skill들을 그대로 사용하였다. 그 외에 추가된 Skill은 toString(), parseInt()가 있다.
✔ Math.sign()
Math.sign()를 이용해 해당 변수의 부호를 알아내고 활용할 수 있다. 위의 소스코드에서 보면 알 수 있듯, arguments로 들어오는 n의 부호를 마지막에 곱해주어 해당 -(negative)를 다시 살려주었다.
✔ Number.prototype.toString()
처음에 들어오는 arguments가 number type이므로 reverse()를 이용할 것이라면 toString()으로 반드시 변환해줘야 한다. 그리고 reverse()를 사용하기 전에 split()사용하여 array로 반드시 변환해줘야 한다. Array.prototype.reverse()이기 때문이다.
✔ Global.parseInt()
string과 array를 이용해 number를 뒤바꾸어 주었으니, 최종값은 parseInt()를 이용해 number type으로 변환해야 한다.
😢 reverse() helper를 이용하여 쉽게 해결할 수 있지만, 다른 방법으로도 풀 수 있는 것이 중요하다.
😊 평소 자주 사용하지 않았던, for of loop와 reduce를 이용하여 쉽게 해결할 수 있었다.
✔String.prototype.split()
split() 의 괄호 안에 separator를 지정하여 string을 array로 변환할 수 있다.
✔ Array.prototype.reverse()
method명 그대로 array의 순서를 정반대로 뒤바꿀 수 있다. 따라서 해당 값이 array가 아니라면, split('')을 이용해 array로 변경해주는 것이 중요하다.
✔ Array.prototype.join()
join() 의 괄호 안에 separator를 지정하여 array를 string으로 변환할 수 있다.
✔ Array.prototype.reduce()
reduce() 의 괄호 안에 reducer function을 작성하여 array 값을 다룰 수 있다. 간단히 설명하자면, 첫 번째 arguments는 accumulator, 두 번째 arguments는 currentValue이며, 위의 3번째 소스코드처럼 rev에 char를 하나씩 계속 더하는 방식으로 결과를 도출해냈다. 자세한 내용은 helper methods category에서 다루도록 하겠다.
✔ for ... of
classic for loop 보다 fancy한 for loop이다. for(let value of array){} 형식으로 사용하며, array의 첫 번째 값부터 마지막 값까지 순서대로 value에 전달한다. 평소 classic for loop을 이용하면 index 선언 순서가 헷갈리거나 오타가 발생할 수 있는데, 그것을 방지하는 것에 좋다. 다른 category에서 더 자세히 다루어 보겠다.