我对javascript很新,我最近一直在玩的东西是' for'声明。不过,我对一件事情提出质疑。我已经学会了如何制作一个' for'声明做的事情好像是输出,如下所示:
for (i = 0; i < 3; i++) {
console.log(i);
}
但是如果你想为&#39; for&#39;的整个输出设置一个变量怎么办?声明?
var destinationArray = ["town", "areas", "bosses"];
var destinationArraySet = 1;
var i;
for ( i = 0; i < destinationArraySet; i++) {
console.log(destinationArray[i]);
} /*the whole thing should be equal to var destination */
var userDestinationPrompt = ("Where would you like to go? Available places: " +
/* var destination */
+
".").toUpperCase();
提供更多背景信息:我制作的游戏允许在清除目的地之前的其他目的地。一旦实现了这一点,我将destinationArraySet设置为更高的值,这意味着更多的地方将被记录并放在&#39;可用的地点之后。
非常感谢帮助!如果有不清楚的事情让我知道。
答案 0 :(得分:1)
for
语句不是表达式,因此它没有返回值。使用变量来收集循环中的值:
var destination = '';
for (var i = 0; i < destinationArraySet; i++) {
destination += destinationArray[i] + ' ';
}
当然,如果您只想将数组中的值连接起来,可以使用slice
方法获取其中的一部分,然后使用join
方法:
var destination = destinationArray.slice(0, destinationArraySet).join(' ');
答案 1 :(得分:0)
var destination = '';
var destinationArray = ["town", "areas", "bosses"];
var destinationArraySet = 1;
for (var i = 0; i < destinationArraySet; i++) {
destination += destinationArray[i] + '\n';
}
console.log(destination);
答案 2 :(得分:0)
for语句没有&#34;输出&#34;,它不是一个功能。将for
视为一种功能会在以后给你带来麻烦。 for
只是一个连续执行内部代码块的语句。它不输出&#34;,换句话说,返回任何值。
请改为:
var destinationArray = ["town", "areas", "bosses"], destinationArraySet = 1;
var userDestinationPrompt = ("Where would you like to go? Available places: " +
destinationArray.slice(0, destinationArraySet).join("\n")
+ ".").toUpperCase();
prompt(userDestinationPrompt);
演示:http://jsfiddle.net/7c2b9q7m/1/
destinationArray.slice(0, destinationArraySet)
:将数组剪切到指定的长度。.join("\n")
:按\n
s(换行符)加入新创建的数组,以微调默认的console.log
行为。答案 3 :(得分:0)
试试这个 -
var destinationArray = ["town", "areas", "bosses"];
var destinationArraySet = 1;
var i;
var availablePlaces = '';
var separator = '';
for ( i = 0; i < destinationArraySet; i++) {
availablePlaces += separator + destinationArray[i];
separator = ', ';
}
var userDestinationPrompt = ("Where would you like to go? Available places: " +
availablePlaces + ".").toUpperCase();