Segregating a string into substrings - JavaScript


We are required to write a JavaScript function that takes in a string and a number n as two arguments (the number should be such that it exactly divides the length of string) and we have to return an array of n strings of equal length.

For example −

If the string is "how" and the number is 2, our output should be −

["h", "o", "w"];

Here, every substring exactly contains −

(length of array/n) characters

And every substring is formed by taking corresponding first and last letters of the string alternatively.

Example

Following is the code −

const str = "how";
const num = 3;
const segregate = (str, n) => {
   if(str.length % n !== 0){
      return false;
   }
   const len = str.length / n;
   const strArray = str.split("");
   const arr = [];
   let i = 0, char;
   while(strArray.length){
      if(i % 2 === 0){
         char = strArray.shift();
      }else{
         char = strArray.pop();
      };
      if(i % len === 0){
         arr[i / len] = char;
      }else{
         arr[Math.floor(i / len)] += char;
      };
      i++;
   };
   return arr;
};
console.log(segregate(str, num));

Output

This will produce the following output in console −

[ 'h', 'w', 'o' ]

Updated on: 18-Sep-2020

143 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements