在div中输出,在数组中打印对象,但第一个答案是;未定义";-Javascript
在div中输出,在数组中打印对象,但第一个答案是;未定义";-Javascript,javascript,html,arrays,Javascript,Html,Arrays,我对这一点很陌生,我希望能在这一点上有所澄清: 每当我运行这段代码时(PS:boardGames,是一个单独文档中的数组)它似乎可以工作,但第一个答案总是“未定义”。为什么呢?我怎样才能修好它 谢谢 var message; var games; var search; var i; function print(message) { var outputDiv = document.getElementById('output'); outputDiv.innerHTML = me
我对这一点很陌生,我希望能在这一点上有所澄清:
每当我运行这段代码时(PS:boardGames,是一个单独文档中的数组)
它似乎可以工作,但第一个答案总是“未定义”。为什么呢?我怎样才能修好它
谢谢
var message;
var games;
var search;
var i;
function print(message) {
var outputDiv = document.getElementById('output');
outputDiv.innerHTML = message;
}
function gamestoPlay( games ) {
var topGames = '<h3> Game: ' + boardGames[i].name +'</h3>';
topGames += '<p> Minimum Players: ' + boardGames[i].idealMinPlayers + '</p>';
topGames += '<p> Maximum Players: ' + boardGames[i].idealMaxPlayers + '</p>';
return topGames
}
search = parseInt(prompt('How many people are coming?'));
for (i = 0; i < boardGames.length; i += 1) {
games = i;
if ( search >= boardGames[i].idealMinPlayers && search <= boardGames[i].idealMaxPlayers) {
message += gamestoPlay();
print(message);
}
}
var消息;
var博弈;
var搜索;
var i;
功能打印(消息){
var outputDiv=document.getElementById('output');
outputDiv.innerHTML=消息;
}
功能游戏停止播放(游戏){
var topGames='Game:'+boardGames[i]。名称+';
topGames+='最低玩家数:'+boardGames[i].理想玩家数+';
topGames+='最大玩家数:'+boardGames[i].IdealMaplayers+'';
返回顶级游戏
}
search=parseInt(提示(“有多少人要来?”);
对于(i=0;i 如果(search>=boardGames[i].idealMinPlayers&&search,因为您没有初始化消息
当你这样做的时候
message += gamesToPlay();
它首先必须将消息
转换为字符串,以便可以连接到它。由于您没有初始化消息
,它的值是未定义的
,当它转换为字符串时,它变为“未定义的”
,然后将游戏停止播放()的结果连接到该字符串
将初始化更改为:
var message = "";
可能是因为您定义的boardGames数组从[1]开始,而不是[0]?请尝试将消息初始化为空字符串(“”)。听起来好像您的代码是在DOM准备使用空字符串初始化消息之前运行的!谢谢!!@LeoMedina您可能还不能这样做,但在这里说“谢谢”的好方法是接受对您帮助最大的答案。