在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您可能还不能这样做,但在这里说“谢谢”的好方法是接受对您帮助最大的答案。