How to add a string to the start and the end of each element in a JavaScript array?

Tags:



This is an assingment from SoloLearn.
The idea is to add a string to all elements in an array, where each element is separated by a dollar sign $. The output should be as below

$hehe$hoho$haha$hihi$huhu$
$this$is$awesome$
$lorem$ipsum$dolor$sit$amet$consectetur$adipiscing$elit$

The way I tried is wrong, since after each element should be only one string, but the output for my code is

$hehe$$hoho$$haha$$hihi$$huhu$
$this$$is$$awesome$
$lorem$$ipsum$$dolor$$sit$$amet$$consectetur$$adipiscing$$elit$

My attemp

class Add {
  constructor(...words) {
      this.words = words;
       
  }
  print(){
    let output = [];
    for(let i =0; i< this.words.length; i++){
        output.push("$"+this.words[i]+"$")
    }       console.log(output.join(''))

  }
}

var x = new Add("hehe", "hoho", "haha", "hihi", "huhu");
var y = new Add("this", "is", "awesome");
var z = new Add("lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit");
x.print();
y.print();
z.print();

Answer

Write output.push('$' + this.words[i]) instead of output.push("$"+this.words[i]+"$") and at last push $ to the output array.

class Add {
  constructor(...words) {
    this.words = words;
  }
  print() {
    let output = [];
    for (let i = 0; i < this.words.length; i++) {
      output.push('$' + this.words[i]);
    }
    output.push('$');
    console.log(output.join(''));
  }
}

var x = new Add('hehe', 'hoho', 'haha', 'hihi', 'huhu');
var y = new Add('this', 'is', 'awesome');
var z = new Add(
  'lorem',
  'ipsum',
  'dolor',
  'sit',
  'amet',
  'consectetur',
  'adipiscing',
  'elit'
);
x.print();
y.print();
z.print();


Source: stackoverflow