连接与数组对象相关的文本:如何以及在哪里?

Connecting text relating to array object: how and where?

我正在做一个项目,在这个项目中,我需要通过几种方法将数组中的一个对象(具体来说是一个字符串)连接到相当于几句话的额外文本。

目前我有一个函数可以创建数组并用与正在玩的游戏相关的值(字符串和数字)填充它:

/* store names by male and female for selection later */
var aliasM = ["Spike", "Mike", "Pops", "Noodles", "Shorty"];
var aliasF = ["Shanna", "Rose", "Sugar", "Alana"];

function aliasSelector() {
  if (Math.random() <= 0.55) {
    alias = aliasM[Math.floor(Math.random() * aliasM.length)];
    var mTook = aliasM.indexOf(alias);
    aliasM.splice(mTook, 1)
  } else {
    alias = aliasF[Math.floor(Math.random() * aliasF.length)];
    var fTook = aliasF.indexOf(alias);
    aliasF.splice(fTook, 1);
  }
  return alias;
}

function playerGen(name, alias, turns, mech, cash, credit) {
  this.name = name;
  this.alias = aliasSelector();
  this.turns = 0;
  this.mech = Math.ceil(Math.random() * 5);
  this.cash = 1000 + Math.round(Math.random() * 1000);
  this.credit = Math.round(Math.random() * 2000);
}

/*Next we create array objects for each player */
function nameCheck() {
  p1 = document.getElementById("p1Entry").value;
  if (p1 !== "") {
    playerList.push(new playerGen(p1));
  }
  /* and so on */
}

我想包括的是每个别名的简短描述。因此,如果玩家获得别名 "Spike",就会有一小段 某处 告诉我们有关 Spike 的信息。

我不确定如何在不将句子包含在数组中的情况下建立这种联系。我在想某种条件可能会起作用,或者创建某种将名称连接到段落的符号,存储为变量 spikeInfo。我认为最后一种方法最有意义,例如:

var SpikeInfo = "Spike is an HVAC specialist from Fresno who....";

这些东西可以存储在另一个文件中吗,或者这样做是否有价值?那是 .txt 文件还是另一个 .js 文件?

我会使用像

这样的对象字面量将段落包含在数组中
 [{Name:"spike",Bio:"foo"}, ...]

您可以将其存储为 Json 并使用内置的 js Jason 对象加载它。

如果您希望在网页上执行此操作,并且如果您将别名信息存储为名为 nameBio.html 或类似文件的文件,则可以使用 AHAH 获取并插入个人简介. AHAH 将获取文件并将其插入到 HTML 元素中。如果你想在加载后收集文本,只需获取你加载的元素的innerHTML,或者修改AHAH代码。

这是一个例子

HTML

<div id="name"></div>
<div id="bio"></div>

JS

//Let's assume your randomly picked name is stored in a variable called randNm 
var fileName = randNm + "Bio.html";
ahah(filename,bio)

document.getElementById("name").innerHTML = randNm;
var bioText = document.getElementById("bio").innerHTML

nmBio.html:

<!--This Bio Should Be Stored Like This -->
<p>
    Lorem Ipsum Dolor Sit Amet Is Absolute Gibberish And Not Even Close To Real Latin...
</p>

如果名称是 "Spike" 那么此代码将获取一个名为 "SpikeBio.html" 的文件 现在您已经获取并显示了您的姓名和相关个人简介,以及存储在变量中的个人简介。这当然不是一个简洁或优雅的解决方案,但它只需要很少的代码。

你也可以用两个数组来做:

JS:

var names = ["name1","name2",...];
var bios = ["BioForName1","BioForName2",...];
var whichName = Math.floor(Math.random()*names.length-1);
var chosenName = names[whichName];
var chosenBio = bios[whichName];

这假设姓名的简历在数组中的位置与其数组中的姓名相同。