JavaScript méthode split() résultant non défini

Je suis en train de travailler sur un programme simple qui va sélectionner une chaîne de caractères aléatoires à partir d'un tableau.

J'ai commencé avec un tableau prédéfini, mais à mi-parcours s'est demandé s'il ne serait pas plus simple (ou plus élégant) pour utiliser un text file (.txt), depuis que j'ai un peu plus de 1000 points.

J'ai trouvé cette solution ici (pour laquelle je ne prends pas de crédit) et il est travaillé pour moi...

function readTextFile(file) {
    var items = [];
    var rawFile = new XMLHttpRequest();
    rawFile.open("GET", file, true);
    rawFile.onreadystatechange = function() {
        if(rawFile.readyState === 4)
        {
            if(rawFile.status === 200 || rawFile.status === 0)
            {
                var items = rawFile.responseText.split('\n');
                alert(items[0]);
            }
        }
    };
    rawFile.send(null);
}

readTextFile('source.txt');

...dans une certaine mesure.

Je veux le array items[] pour contenir une ligne par article. En d'autres termes je veux divisé par la ligne nouvelle. Cependant, tous les éléments de tableau sont undefiend après items[0] lorsque j'utilise split('\n').

items[0] dans l'exemple ci-dessus devient la première phrase, de sorte que beaucoup est correct. Si je veux alert items[1] - je obtenir de l'indéfini.

Si je utiliser un autre point de scission, comme split(''), il fonctionne correctement, en séparant chaque caractère par élément jusqu'à ce que les sauts de ligne, après le point, je reçois pas défini encore.

Disons que la première ligne de la .txt is "asd":
si " tsa " est défini dans le tableau :

items[0] = 'a'
items[1] = 's'
items[2] = 'd'
items[3] = undefined

C'est ce que je voudrais obtenir. Où ai-je tort?

Contenu du fichier texte:

asfe
asdasdasd
asdasd

fgfg
  • Je voudrais utiliser le tableau, comptez le nombre de ses éléments, et puis choisir un nombre aléatoire entre ce montant et l'utiliser pour appeler élément de tableau.
  • Oh, la sélection aléatoire n'est pas encore mis en œuvre, mais ne pense pas que j'aurais des problèmes, il y a (encore). Pour l'instant je veux juste assurer tous mes éléments de tableau sont corrects. Merci bien!
  • Comment vous enregistrer ce fichier? Quel est votre éditeur de texte? Je soupçonne que le caractère de saut de ligne n'est pas vraiment \n.
  • Assistant: je soupçonne que trop. J'ai simplement ouvert le bloc-notes de Windows 7, tapé n'importe quoi et l'a sauvé. Rien d'autre.
  • donc, c'est bizarre, comme cela a fonctionné pour moi très bien. Par la manière, vous devez exécuter le code via IIS, en l'exécutant en tant que fichier local (c'est à dire double-cliquant sur le fichier HTML dans Windows Explorer) ne fonctionnent pas.
  • Assistant: désolé, voulez-vous de préciser que? Faut-il tout simplement pas de travail du tout en exécutant localement? Je suis à l'aide de Netbeans IDE et je lance le code à travers elle (elle s'ouvre dans le navigateur Chrome). Le code, en substance, les œuvres. Je ne me éléments de tableau jusqu'au premier saut de ligne là où je commence à être défini.
  • pas de. Pour que les choses comme AJAX travailler en douceur, autant que je peux dire, vous devez utiliser un serveur web. Windows 7 devrait venir avec IIS, il vous suffit de l'activer via Ajouter/Supprimer des Fonctionnalités Windows.

InformationsquelleAutor Tiago | 2014-01-12