首页 > 解决方案 > 如何在数组中循环并在JS中没有空格的情况下一起打印?

问题描述

我仍在学习 Javascript 并尝试完成 SoloLearn 上的最后一项任务。我必须一起打印输入,例如第一个“$hello$how$are$you$”。

到目前为止,我已经尝试过这个方法,方法是执行一个 for 循环并将其推入一个空的 var,然后将它们连接在一起,但到目前为止还没有运气。请问有什么建议吗?


class Add {
  constructor(...words) {
      var completeWord = "";
      this.words = words;
      this.print = function(){
        for(x=0;x<words.length;x++){
          completeWord.push[x];
        
          
        }

      }
      completeWord.join("");
      console.log(completeWord);
  }
  //your code goes here
  

}

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();

标签: javascriptarrays

解决方案


只是.join由分隔符组成的数组,并将分隔符添加到结果字符串的两端:

class Add {
  constructor(...words) {
    this.words = words;
  }
  print() {
    console.log('$' + this.words.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();

但是 JS 不是 Java——不需要一个类来包装一个方法。如果可能,请改用普通函数,它的开销更少,结构更有意义:

const add = (...words) => console.log('$' + words.join('$') + '$');

add("hehe", "hoho", "haha", "hihi", "huhu");
add("this", "is", "awesome");
add("lorem", "ipsum", "dolor", "sit", "amet", "consectetur", "adipiscing", "elit");


推荐阅读