Javascript将数组转换为字符串并使其反向输出

时间:2012-09-03 04:27:20

标签: javascript arrays string reverse

当我编写下面的代码时,所有内容都按预期反转。

var sequence = "kick snare hat openHat";
var sequenceBackwards = sequence.split('').reverse().join('');
document.write(sequenceBackwards);

然而,当我有一个数组,然后将其转换为字符串,然后执行相同的过程它不起作用。

var sequence = ["kick","snare", "hat","openHat"];
sequence.toString();
var sequenceBackwards = sequence.split('').reverse().join('');
document.write(sequenceBackwards);

我想知道为什么这不起作用,以及一个有效的替代例子。

当我为sequenceBackwards执行“typeof”时,它不会返回string.It会返回一个对象,告诉我它仍然是假定的“转换”之后的数组。我对此感到有点困惑。

我没有为一个我很好奇的项目做这个,并且已经在这个项目中挑选了一个小时。

4 个答案:

答案 0 :(得分:2)

此行不会更改sequence变量,只会returns字符串:

sequence.toString();

["kick", "snare", "hat", "openHat"].toString()提供"kick,snare,hat,openHat"。所以这不是你想要的。

使用

var sequence = ["kick", "snare", "hat", "openHat"];
var sequenceBackwards = sequence.join(' ').split('').reverse().join('');
document.write(sequenceBackwards);

答案 1 :(得分:0)

数组有.reverse方法。

var sequence = ["kick","snare", "hat","openHat"];
sequence.reverse();

答案 2 :(得分:0)

您遇到不同行为的原因是toString调用通过逗号而不是空格将每个元素连接在一起。这段代码:

var sequence = ["kick","snare", "hat","openHat"];
sequence.toString();

返回以下内容:

  

踢,小鼓,帽子,openHat

您可以改用:

sequence.join(' ');

答案 3 :(得分:0)

这对sequence变量没有任何作用:

var sequence = ["kick","snare", "hat","openHat"];
sequence.toString();

你需要重新分配它:

sequence = sequence.toString();

Array.toString会返回以逗号分隔的值,但您可以使用sequence.join(' ')将值与空格连接。