1

I have string like below:

ABCDEFGH

And i want to reverse it like below:

GHEFCDAB

i have tried this:

  var str = "ABCDEFGH";
  var splitString = str.split("");
  var reverseArray = splitString.reverse();
  var joinArray = reverseArray.join(""); 

And return like below:

HGFEDCBA

I Know it wrong, and it just reverse it one way. how to reverse string in javascript with that condition? Many thank before.

Djoe
  • 33
  • 3

3 Answers3

4

You can do this, using regex : let splited = str.match(/.{1,2}/g).reverse().join('');

str.match(/.{1,2}/g) to transform ABCDEFGH to [AB, CD, EF, GH]
reverse() to transform [AB, CD, EF, GH] to [GH, EF, CD, AB]
join('') to transform [GH, EF, CD, AB] to GHEFCDAB

You can take a look here

TBouder
  • 2,376
  • 13
  • 29
1

Pairing string reverse

Using empty String

const str = 'ABCDEFGH'
var emptyStr = '';

for(let i = str.length; i>1; i--){
  emptyStr += str.slice(i-2,i)
  i--
}
console.log(emptyStr);

using empty Array

const str = 'ABCDEFGH'
const rev = str.split('');
const revStr = []

for(let i = str.length; i >=1; i--){
const strPair = rev.slice(i-2,i).join('');
  i--;
  revStr.push(strPair)
  }
console.log(revStr.join(''))

Output: GHEFCDAB

Chaurasia
  • 568
  • 5
  • 22
0
class RevStr{
 
    constructor(input){
        this.str =input;
    }

    reverseStr() {
        let str = this.str.match(/.{1,2}/g)
        let end = str.length-1;
        let start = 0;

        while (start < end) {
            let temp = str[start];
            str[start] = str[end];
            str[end] = temp;
            start++;
            end--;
        }
        console.log(str.join(''));
    }

}
let s = new RevStr("abcdefgh");
s.reverseStr();
Dhiraj Baruah
  • 182
  • 1
  • 7