w3resource

JavaScript: Check a string for palindromes using recursion

JavaScript Function: Exercise-10 with Solution

A palindrome is a word, number, phrase, or other sequence of symbols that reads the same backwards as forwards, such as the words madam or racecar, the date/time stamps 11/11/11 11:11 and 02/02/2020, and the sentence: "A man, a plan, a canal – Panama".
Write a JavaScript program to check whether a given string is a palindrome or not using recursion.

Test Data:
("madam") -> true
("abdb") -> false
("ab") -> false
(test("a") -> true

Sample Solution:

HTML Code:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Check a string for palindromes using recursion</title>
</head>
<body>

</body>
</html>

JavaScript Code:

const test = (text) => {
  if (typeof text !== 'string') {
        return 'String should not be empty!'
  }

  if (text.length <= 1) {
    return true
  }

  if (text[0] !== text[text.length - 1])
  {
    return false
  } 
  else 
  {
    return test(text.slice(1, text.length - 1))
  }
}
console.log(test("madam"))
console.log(test("abdb"))
console.log(test("ab"))
console.log(test("a"))

Output:

true
false
false
true

Flowchart:

Flowchart: JavaScript recursion function- Check a string for palindromes using recursion

Live Demo:

See the Pen javascript-recursion-function-exercise-10 by w3resource (@w3resource) on CodePen.


Improve this sample solution and post your code through Disqus

Previous: Marge sort - recursion.
Next:Convert Binary to Decimal using recursion.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.

JavaScript: Tips of the Day

Eequality test

console.log(Number(2) === Number(2));
console.log(Boolean(false) === Boolean(false));
console.log(Symbol('foo') === Symbol('foo'));

Every Symbol is entirely unique. The purpose of the argument passed to the Symbol is to give the Symbol a description. The value of the Symbol is not dependent on the passed argument. As we test equality, we are creating two entirely new symbols: the first Symbol('foo'), and the second Symbol('foo'). These two values are unique and not equal to each other, Symbol('foo') === Symbol('foo') returns false.

Ref: https://bit.ly/323Y0P6

 





We are closing our Disqus commenting system for some maintenanace issues. You may write to us at reach[at]yahoo[dot]com or visit us at Facebook