如何编写一个函数来从数组中形成一个字符串?

时间:2017-11-08 05:39:34

标签: javascript

我正在进行一些测验,我想知道如何编写一个函数来形成一个字符串:HEY JUDE

我有一个初始数组,看起来像[ 'H', 'E', 'Y', '', '', 'J', 'U', 'D', 'E' ]

我知道这是一个简单的小测验,但我不知道如何在单词之间只留一个空格而不是2个空格。

3 个答案:

答案 0 :(得分:0)

这可以通过多种方式完成,但最简单的方法是使用for循环。

逻辑

  • 创建一个临时变量,该变量将保存最后一个附加字符。
  • 循环数组并设置此变量。
    • 如果当前字符为空,
      • 如果最后一个字符不是空格,请将其设置为空格。
      • 如果是空格,请保持原样。
    • 否则,将值设置为当前字符
  • 不将此字符附加到字符串中。



var data = [ 'H', 'E', 'Y', '', '', 'J', 'U', 'D', 'E' ];

var str = '';
var lastChar = null;

for(var i = 0; i< data.length; i++) {
  if(!data[i] && lastChar !== ' '){
    lastChar = ' ';
  }
  else {
    lastChar = data[i];
  }
  str += lastChar;
}

console.log(str)
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您可以使用空格连接数组并删除单个空格或多个空格。

&#13;
&#13;
var array = ['H', 'E', 'Y', '', '', 'J', 'U', 'D', 'E'];

console.log(array.join(' ').replace(/ (?=  |\S)/g, ''));
&#13;
&#13;
&#13;

答案 2 :(得分:-2)

您可以使用数组的连接属性。

Reference for array join

var arr = [&#39; H&#39;,&#39; E&#39;,&#39; Y&#39;,&#39;&#39;,&#39; &#39;,&#39; J&#39;,&#39; U&#39;,&#39; D&#39;,&#39; E&#39; ] 然后 arr.join(&#39;&#39;)会给你&#34; HEYJUDE&#34;

如果在

之间添加一个空格

var arr = [&#39; H&#39;,&#39; E&#39;,&#39; Y&#39;,&#39; &#39;,&#39; J&#39;,&#39; U&#39;,&#39; D&#39;,&#39; E&#39; ] 然后 arr.join(&#39;&#39;)会给你&#34; HEY JUDE&#34;