728x90

✨ 직접 작성한 function을 주입하여, 각 elements를 test 할 수 있는 helper function

(e.g., arr.every(char => char === 'a')) 왼쪽처럼 test할 function을 주입하고, arr의 값이 1개 있다고 가정할 때, 그 arr의 값이 'a'와 동일하다면 true가 반환될 것이고, 아니라면 false가 반환될 것이다.
Palindrome(회문 구조) Algorithm에서 유용하게 사용하였다.

💻Example Code

const arr = [ 'a' ];

console.log( arr.every((char, index) => char === arr[index]));

실행 결과(값이 같기 때문에 true)

😋 Palindrome과 같이 전체 array를 처음부터 또는 마지막부터 하나씩 검사하기에 좋다.
더 활용된 내용은 palindrome algorithm을 참고하면 됩니다.

👉 자세한 내용은 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every

'JavaScript > Built-in Method etc.' 카테고리의 다른 글

String.prototype.toLowerCase() & toUpperCase()  (0) 2019.12.28
Array.prototype.includes()  (0) 2019.12.26
Array.prototype.reduce()  (0) 2019.12.24
Array.prototype.join()  (0) 2019.12.24
Array.prototype.reverse()  (0) 2019.12.24
728x90

Q. 주어진 string의 회문 구조를 파악하고, 맞으면 true 틀리면 false를 return하라.

--- Examples
palindrome("abba") === true
palindrome("abcdefg") === false

Code

https://github.com/DasolPark/Algorithm_DataStructure_JavaScript-Stephen-/commit/efd69d6b976fab583958556518cf5b3162275d67
https://github.com/DasolPark/Algorithm_DataStructure_JavaScript-Stephen-/commit/efd69d6b976fab583958556518cf5b3162275d67

😢 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에서 다루도록 하겠다.

Full Code

function palindrome(str) {
return str.split('').every((char, i) => {
return char === str[str.length - i - 1];
});
}
 
// function palindrome(str) {
// let reversed = str
// .split('')
// .reverse()
// .join();
// return str === reversed;
// }

+ Recent posts