我的问题本质上是,我试图制作一个通用的Ajax函数,仅用于检索将被解析的信息,然后自动将其存储为任何所谓的信息的值。在这种特定情况下,这是我正在制作的hang子手游戏的巨大词典单词列表。如何将ajaxRequest.responseText.split("\n")创建的数组转义为任何调用它的数组。就我而言,它将是ALAMI.Hangman.Wordlist

我的最终目标是能够使用ALAMI.Hangman.Wordlist[i]并使它返回存储在Array中该位置的任何字符串的值。

在您弄怪这不是我的全部代码之前,将通过ALAMI.XHR();调用XHR请求函数,如下所示,但是我没有在代码中包括它,因为我觉得这是不必要的。

ALAMI.XHR.Get = function(URL){
  "use strict";
  var ajaxRequest = ALAMI.XHR();
  var ajaxResponse;

  ajaxRequest.open("GET", URL, true);
  ajaxRequest.send(null);
  ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState === 4){
      ajaxResponse = ajaxRequest.responseText.split("\n");
      var extensionLocation = URL.lastIndexOf('.');
      console.log(URL.substr(extensionLocation) + " file ...... " + ajaxResponse.length + " lines.");
    }
  }
  return ajaxResponse;
}

ALAMI.Hangman = ALAMI.Hangman || {};

ALAMI.Hangman.Wordlist = ALAMI.XHR.Get('fulldictionary.txt');

//I want ALAMI.Hangman.Wordlist to be equal to the Array of ajaxRequest.responseText.split("\n")


我的最终目标是能够使用ALAMI.Hangman.Wordlist[i]并使它返回存储在Array中该位置的任何字符串的值。

另外,我正在尝试使我的ajax函数成为一种通用方法,可以使用无数次。例如:

 ALAMI.Hangman.Wordlist1 = ALAMI.XHR.Get('fulldictionary.txt');
 ALAMI.Hangman.Wordlist2 = ALAMI.XHR.Get('dictionary2.txt');


最终目标是:

如果在全局空间中我写console.log(ALAMI.Hangman.Wordlist[0]);,它当前显示为未定义,但是,我想要的是将数组存储在ALAMI.Hangman.Wordlist中,这样当我这样做时它将输出数组的第一个值。

console.log(ALAMI.Hangman.Wordlist[0]); //Should output Apple

最佳答案

[根据评论编辑]

如果要从XHR请求的结果填充ALAMI.Hangman.Wordlist,则应在该请求的回调中执行此操作

ALAMI.Hangman = ALAMI.Hangman || {};

//change ALAMI.XHR.Get = function(URL) to
//       ALAMI.XHR.Get = function(URL,listID)

ALAMI.XHR.Get('fulldictionary.txt','WordList');
ALAMI.XHR.Get('fulldictionary2.txt','WordList2');
ALAMI.XHR.Get('fulldictionary3.txt','WordList3');

// [...]
  ajaxRequest.onreadystatechange = function(){
    if(ajaxRequest.readyState === 4){
      ajaxResponse = ajaxRequest.responseText.split("\n");
      var extensionLocation = URL.lastIndexOf('.');
      ALAMI.Hangman[listID]  = ajaxResponse; // <===
      // [...]
      // do stuff with the populated ALAMI.Hangman[listID]
    }
  }

10-08 20:20