连接与数组对象相关的文本:方式和位置

Connecting text relating to array object: how and where?

本文关键字:文本 方式 位置 数组 对象 连接      更新时间:2024-03-30

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

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

/* 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文件?

如果您希望在网页上执行此操作,并且将别名信息存储为名为nameBio.html或类似文件,则可以使用AHAH获取并插入bio。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];

这假设一个名称的bio在其数组中的位置与其数组中的名称相同。

我会使用类似的对象文字将段落包含在数组中

 [{Name:"spike",Bio:"foo"}, ...]

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