w3resource

JavaScript: Check exceeding word

JavaScript String: Exercise-52 with Solution

There is an increasing gap between two adjacent characters in exceeding words. In ASCII, the gap represents the distance between two characters.
Write a JavaScript programe to check a given word is exceeding word or not.
Example:
'acgl'
Adjacent characters:
'ac' -> 2
'cg' -> 4
'gl' -> 5
So 'acgl' is exceeding word.
'aebc'
Adjacent characters:
'ae' -> 4
'eb' -> 3
'bc' -> 1
So 'aebc' is not an exceeding word.
Test Data:
'acgl' -> true
'aebc' -> false

Sample Solution:

HTML Code:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>JavaScript function to Check exceeding word</title>
</head>
<body>

</body>
</html>

JavaScript Code:

/**
 *Source:shorturl.at/asFM4
 * @function test
 * @param {string} text
 * @returns {boolean}
 */
const test = (word) => {
  if (typeof word !== 'string') {
        return 'It must be string'
  }

  const upperChars = word
    .toUpperCase()
    .replace(/[^A-Z]/g, '') // remove all from str except A to Z alphabets

  const adjacentDiffList = []

  for (let i = 0; i < upperChars.length - 1; i++) {
    // destructuring current char & adjacent char by index, cause in javascript String is an object.
    const { [i]: char, [i + 1]: adjacentChar } = upperChars

    if (char !== adjacentChar) {
      adjacentDiffList.push(
        Math.abs(char.charCodeAt() - adjacentChar.charCodeAt())
      )
    }
  }

  for (let i = 0; i < adjacentDiffList.length - 1; i++) {
    const { [i]: charDiff, [i + 1]: secondCharDiff } = adjacentDiffList

    if (charDiff > secondCharDiff) {
      return false
    }
  }
  return true
}
console.log(test('acgl'))
console.log(test('aebc'))
console.log(test(12356))

Sample Output:

true
false
It must be a string.

Flowchart:

Flowchart: JavaScript: check exceeding word

Live Demo:

See the Pen javascript-string-exercise-52 by w3resource (@w3resource) on CodePen.


Improve this sample solution and post your code through Disqus

Previous: Implement Boyer-Moore string-search algorithm.
Next: Check a string is in Flat case.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Share this Tutorial / Exercise on : Facebook and Twitter

JavaScript: Tips of the Day

function and arguments

const person = {
  name: 'Lydia Hallie',
  hobbies: ['coding'],
};

function addHobby(hobby, hobbies = person.hobbies) {
  hobbies.push(hobby);
  return hobbies;
}

addHobby('running', []);
addHobby('dancing');
addHobby('baking', person.hobbies);

console.log(person.hobbies);

The addHobby function receives two arguments, hobby and hobbies with the default value of the hobbies array on the person object.
First, we invoke the addHobby function, and pass "running" as the value for hobby and an empty array as the value for hobbies. Since we pass an empty array as the value for y, "running" gets added to this empty array.
Then, we invoke the addHobby function, and pass "dancing" as the value for hobby. We didn't pass a value for hobbies, so it gets the default value, the hobbies property on the person object. We push the hobby dancing to the person.hobbies array.
Last, we invoke the addHobby function, and pass "bdaking" as the value for hobby, and the person.hobbies array as the value for hobbies. We push the hobby baking to the person.hobbies array.
After pushing dancing and baking, the value of person.hobbies is ["coding", "dancing", "baking"]

Ref: https://bit.ly/2Hcpkm6